NSManagedObject可以将另一个作为属性吗?

时间:2010-03-10 06:46:56

标签: cocoa core-data

我自学了Obj-C,并且一直在自学Cocoa,但是在我的程序中添加Core Data只给我带来了巨大的麻烦,这要归功于我需要广泛的自定义逻辑。以下是一些令我疯狂的问题。

  1. 如果我希望托管对象拥有另一个托管对象怎么办?看来如果我给它一个多对多的关系,拥有的对象将由各种主人共享,但我希望每个所有者都有自己的。

  2. 如果我将NSManagedObject子类化,是否可以对Array Controller进行简单调用以删除或复制ManagedObject的实例,并假设这些实例将被转换为Core Data模型?

  3. 如果我想以编程方式编辑ManagedObject的属性,我是否可以单独使用对阵列控制器的KVC调用?关于从NSManagedDataStoreDrivingMeCrazy NSPredicate对NSManagedObjectContext的NSFetchRequest的所有讨论是什么?我可以创建一个NSFetchRequest来过滤当前在表视图中选择的对象的关系吗?

  4. 一旦我使用获取请求获取一组对象,我该如何查询他们的关系?这需要一个完整的其他FetchRequest,Predicate等等吗?核心数据应该更容易吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

  1. 实体类似于一个类 - 它是稍后将实例化的托管对象的蓝图。每个托管对象都有自己的属性和关系来配置。

  2. 您绝对可以插入和删除托管对象。您可能需要执行一些代码来支持复制,但我不确定。

  3. 是的,托管对象的属性(属性和关系)支持KVC(以及KVO和绑定)。

  4. 只需使用您在模型中定义的关系名称即可访问对象或对象集(不需要额外的提取或逻辑)。