每个NSPersistentDocument一个核心数据实体?

时间:2014-10-09 23:00:44

标签: objective-c macos core-data

如果磁盘上的每个文档都对应一个Entity实例,那么使用Core Data的最佳方法是什么?

我有一个包含一个实体的数据模型文件,该实体有一个名为text且类型为Text的属性。

我有一个Document.xib,它有一个NSObjectController,设置为' Entity'模式并从文件所有者处获取managedObjectContext。我有一个NSTextField绑定到控制器键的对象控制器'选择'和关键路径'文本。' (这只是一个测试,所以我可以弄清楚Core Data是如何工作的,但我的最终应用程序每个文档也只有一个Entity实例)

当我创建新文档时,文本字段显示“没有选择”#39;并被禁用。

我想如果我有一个表视图或其他某种方式从实体实例中进行选择,那么选择就可以了,但我不想也不想。如何将NSObjectController连接到只有一个Entity实例并自动选择'它?

预期的行为是我在NSTextField中输入内容,点击保存,关闭文档,重新打开文档,文本字段中的字符串仍然存在。

这可能是一个非常基本的问题,但我找不到任何可以解决这个看似简单的用例的教程或文档。

1 个答案:

答案 0 :(得分:0)

好吧,我还没有想到这一切,但我的具体问题是由于没有创建任何事实。我为NSArrayController切换了NSObjectController,在Document.m中为它创建了一个插座,并将其添加到windowControllerDidLoadNib

if (![self.arrayController selectedObjects]) {
    [self.arrayController add:@""];
};

现在它似乎只管理一个Entity对象。