【问题标题】:Can a NSManagedObject own another as a property?NSManagedObject 可以拥有另一个作为属性吗?
【发布时间】:2011-01-25 18:43:09
【问题描述】:

我已经自学了 Obj-C,并且一直在自学 Cocoa,但是将 Core Data 添加到我的程序中只会让我非常头疼,这要归功于我需要大量的自定义逻辑。以下是一些让我发疯的问题。

  1. 如果我希望一个托管对象拥有另一个托管对象怎么办?似乎如果我给它一个多对多的关系,拥有的对象将简单地被不同的主人共享,但我希望每个所有者都有自己的。

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

  3. 如果我想以编程方式编辑 ManagedObject 的属性,是否可以仅通过 KVC 调用 Array Controller 来摆脱困境?从 NSManagedDataStoreDrivingMeCrazy 到 NSManagedObjectContext 的 NSPredicate 和 NSFetchRequest 都是什么话题?我可以创建一个 NSFetchRequest 来过滤当前在表格视图中选择的对象的关系吗?

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

【问题讨论】:

    标签: cocoa core-data


    【解决方案1】:
    1. 实体类似于类——它是稍后将实例化的托管对象的蓝图。每个托管对象都有自己的属性和关系需要配置。

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2023-03-20
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多