代码之家  ›  专栏  ›  技术社区  ›  groundhog

提取的属性,跨存储关系

  •  1
  • groundhog  · 技术社区  · 17 年前

    我有一个外部同步的存储和一个应用程序实例独有的存储,因此为了清楚地区分这两个存储,我希望在它们之间有一些连接实体,然后通过使用提取的属性解析实体,如《核心数据编程指南》中的“讨论”所述:

    developer.apple.com/documentation/cocoa/conceptive/coredata/articles/cdrelationships.html//apple-ref/doc/uid/tp40001857-sw5

    我想我只是不太明白应该如何使用提取的属性——而且我花了相当多的时间寻找没有真正运气的例子。

    我的想法是,

    我在不同的商店里有以下实体 带属性 相关的名字 店内 酒吧 带属性 巴名 店内

    我需要在foo上创建一个名为 查找相关栏 那涉及 酒吧 松散地通过 巴名 = 相关的名字 .

    不过,我不明白从那以后 酒吧 在不同的存储中如何声明任何类型的关系,无论是否通过提取的属性 酒吧 ?

    Xcode中的谓词生成器似乎想要一个目标实体。如果它们在不同的模式中,您如何声明目的地?如果不声明目的地,那么在运行时如何指示 查找相关栏 是描述 酒吧 ?

    否则,它们是否需要在相同的模式中,但只存储在不同的存储中?

    • 在构思这个问题的过程中,我想到了这些问题,并通过对文档进行更加集中的检查来回答它们。我假设如果我发现它令人困惑,其他人也可能会,所以我将把它们与本文放在一起,以便更容易地找到获取的属性/核心数据存储的相关答案。

    q)如果一个存储协调器有多个与同一模式的存储相关联的存储,那么插入如何知道要插入哪个存储?

    a) You use the assignObject:toPersistentStore: method on the managed object context.

    Q)什么? 取源 具体参考?

    a)它只是具有与之关联的已提取属性的托管对象。有点像 自己

    Q)什么? 获取的属性 具体参考?

    a)它是对您用来查询的提取属性描述实例的引用-您可以使用它来插入每个查询变量替换。通过在正在使用的属性描述实例的用户信息上设置属性(如核心数据编程示例中所示),可以将该值注入表达式。

    谢谢!!!!!

    2 回复  |  直到 16 年前
        1
  •  0
  •   groundhog    16 年前

    答案是:

    是的,您需要使用共享模式执行跨存储提取的属性。如果这样做,您需要确保按照问题中的描述,使用assignobject::方法为插入赋予属性。但是,由于sqllite持久性存储的限制,像$fetch_source.attribute这样的自然功能不起作用。

        2
  •  0
  •   TechZen    16 年前

    q)如果门店协调员有更多 与之关联的多个存储 相同的模式,如何插入 知道要插入哪个商店吗?

    这就是配置的用途。为每个存储创建一个配置,然后将实体分配给该配置。然后使用正确的配置创建存储。保存上下文时,每个实体都将自动转到正确的存储区。