0

我正在尝试创建一个非常简单的窗口来显示来自 Sqlite3 数据库的项目列表。我有我的对象的通用列表,我想将它绑定到窗口上的控件。做这个的最好方式是什么?

如果是 .NET windows 窗体,我会这样做,Cocco 等价物是什么?myBindingSource.DataSource = new List<MyObject>();

我的 ViewController.cs 代码目前如下所示:

List<MyObject> dataSource = DataStore.GetLibraries(); public override AwakeFromNib() { base.AwakeFromNib(); dataSource = GetMyObjects(); myArrayController.Bind("contentArray", this, "dataSource", null); // Throws error }

但这会引发错误:此类与键 DataSource 的键值编码不兼容。

谢谢!

4

1 回答 1

0

在将 libsqlite3.dylib 链接到您的框架(General:Linked Frameworks and Libraries)并将数据库文件添加到您的项目后,您将创建一个 sqlite 访问器类,以进行数据库连接并启用查询。

如果您的项目还应保存到数据库中,则在安装时,数据库必须放置在您也具有写访问权限的位置,这将位于 iphone 应用程序的“文档”文件夹中或 MacOS 上的“应用程序支持”中X,但不在应用程序包本身中。(注意不要弄乱所有者名称,否则只有 root 或您具有写入权限而您的客户不会)

要将您的查询结果连接到似乎是您问题的核心的 Array-Controller,查询的输出需要根据苹果的 KVC 规则进行格式化。这是通过创建一个 NSDictionary(带有对象和键)并设置数组控制器以从该字典中读取来完成的。

不幸的是,我在自己的项目中使用它的链接已被删除,但我为您找到了两个教程,它们为您提供了必要的函数调用,如果您觉得需要更多详细信息:a)用于 sqlite 连接:http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_4_iPhone_Application_(Xcode_4) b) 用于将 NSArrayController 与字典连接:http: //ihoneylocust.wordpress.com/2013/02/19/first-mac/

于 2014-12-23T07:44:55.927 回答