如何使用NSObjectController和Core Data?

3

我花了一天以上的时间寻找如何使用NSObjectController和核心数据进行绑定的简单示例。所有的示例都是关于使用NSTableView绑定的NSArrayControllers

如果你想要设置一个简单的NSObjectController和核心数据来自动保存和获取数据,该怎么做呢?比如说,你想将一个具有字符串属性的实体绑定到一个文本框上,你该怎么做呢?

1个回答

6
这里是Interface Builder的基础知识。
  1. 从对象库中将nstextfield拖到视图中。

  2. 同样地,将nsobjectcontroller拖入视图中。

  3. 打开绑定检查器。选项-命令-7或查看/实用程序/绑定检查器。

  4. 选择上述的nsobjectcontroller。在绑定检查器中,靠近底部是ManagedObjectContext的参数。点击“绑定到”旁边的复选框。然后从下拉菜单中选择文件所有者。文件所有者很可能是您的NSDocument。将ModelKeyPath设置为managedObjectContext(注意小写的“m”)。

  5. 现在将实用程序视图切换到属性检查器(打开-命令-4)。将模式从“Class”设置为“Entity”。输入您的BusinessObject或Model名称,例如“Employee”。

  6. 选择新的nstextfield。在绑定检查器中,选择“Value”。勾选“绑定到”,并选择上述nsobjectcontroller(从下拉菜单中选择)。

  7. 对于CONTROLLER KEY,选择“selection”。

  8. 对于MODEL KEY PATH,选择模型的属性(但不是关系),例如“name”。

现在通过添加第二个控制器nsarraycontroller来进行实验。它们绑定到关系,而不是属性。因此,数组具有复数的“Content Set”,而不是单数的“Content”。值得注意的是,关系具有基础的NSSet,而所有属性都是NSObject的子类。没有int、float类型,但有NSNumber、NSString。

  1. 选择新的nsarraycontroller。在Content Set中选择“Bind to”。选择第一个nsobjectcontroller。CONTROLLER KEY为“selection”,而MODEL KEY PATH为关系名称,如“employees”。

  2. 设置一个NSTableView,带有几列。(表格有多行来容纳集合中的项目,并且有列来容纳实体中的各种属性)

  3. 选择一个表列。选择“Bind to”,并选择nsarraycontroller。

  4. 这次CONTROLLER KEY是“arrangedObjects”(而不是selection)。MODEL KEY PATH只是一个属性名称,例如“name”。

请注意,NSNumber和NSDate更喜欢NSFormatter,因此将它们(从对象库)拖到nstextfield或table column中,以将数字和日期转换为漂亮的字符串。


1
很棒的答案.. 我希望我知道如何将其适应仅有一个记录的情况。 - Daniel P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接