【问题标题】:Fetched Properties, cross store relationships获取属性,跨商店关系
【发布时间】:2009-08-01 20:09:32
【问题描述】:

我有一个外部同步的商店和一个应用程序实例独有的商店,所以为了清楚地区分这两者,我希望在它们之间有一些连接实体,然后解析到使用之间的实体获取的属性,在核心数据编程指南中“讨论过”:

developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW5

我想我只是没有真正“了解”应该如何使用 Fetched Properties ——而且我花了相当多的时间寻找没有真正运气的示例。

我的想法是,

我在不同的商店中都有以下实体 Foo 属性为 relatedBarName 在商店 A 商店 B

中具有 barName 属性的 Bar

我需要在 Foo 上创建一个名为 findRelatedBar 的提取属性,通过 barNameFooBar 松散关联= relatedBarName.

但是,我不明白由于 FooBar 在不同的商店中,如何声明任何类型的任何关系,无论是否通过获取的属性,从 FooBar

XCode 中的谓词构建器似乎需要一个 Destination 实体。如果它们在不同的模式中,您如何声明目的地?如果您不声明目的地,您如何在运行时指示 Foo 上的 findRelatedBar 正在描述 Bar

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

  • 在制作这个问题时,我想到了这些问题,并通过更集中地检查文档自己回答了这些问题。我假设如果我发现它令人困惑,其他人也可能如此,所以我会将它们内联到这篇文章中,以便更容易找到获取的属性/核心数据存储的相关答案。

Q) 如果一个 store coordinator 有多个相同模式的 store 与之关联,插入如何知道要插入哪个 store?

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

Q) FETCH_SOURCE 具体指的是什么?

A) 它只是一个托管对象,它具有与之关联的获取属性。有点像“self

Q) FETCHED_PROPERTY 具体指的是什么?

A) 它是对您用于查询的获取的属性描述实例的引用 - 您可以使用它来插入每个查询变量替换。通过在您正在使用的属性描述实例的 userInfo 上设置一个属性(如在 Core Data Programming 示例中),您可以将该值注入到表达式中。

谢谢!!!!

【问题讨论】:

    标签: objective-c cocoa core-data


    【解决方案1】:

    答案是:

    是的,您需要使用共享模式执行跨存储获取属性。如果这样做,则需要确保使用问题中所述的 assignObject:: 方法将插入归因于。但是,由于 SQLLITE 持久存储的限制,IN $FETCH_SOURCE.attribute 之类的自然事物不起作用。

    【讨论】:

      【解决方案2】:

      Q) 如果商店协调员有更多 超过一个与其关联的商店 相同的架构,如何插入 知道要插入哪个商店吗?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-07
        • 2011-03-02
        • 2015-07-12
        • 2020-12-10
        • 2013-07-14
        • 2020-08-09
        • 2012-05-03
        相关资源
        最近更新 更多