我有一个外部同步的商店和一个应用程序实例独有的商店,所以为了清楚地区分这两个我希望它们之间有一些连接实体,然后解析到使用之间的实体获取的属性,如“核心数据编程指南”中所讨论的那样:
developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html#// apple_ref / DOC / UID / TP40001857-SW5
我认为我并没有真正“了解”Fetched Properties应该如何使用 - 而且我花了相当多的时间寻找没有真正运气的例子。
我想到的方式是,
我在不同的商店中都有以下实体 商店 A 中的 relatedBarName Foo 商店 B
中带有 barName 的栏我需要在名为 findRelatedBar 的Foo上创建一个fetched属性,通过 barName 将 Foo 与 Bar 松散地联系起来= relatedBarName 。
但是,我不明白,因为 Foo 和 Bar 在不同的商店如何声明任何类型的任何关系,无论是否通过fetched属性,从 Foo 到栏?
XCode中的谓词构建器似乎需要Destination实体。如果它们采用不同的模式,您如何声明目的地?如果您没有声明目的地,那么您在运行时如何表明 Foo 上的 findRelatedBar 正在描述栏?
否则,他们是否需要处于相同的架构中,只是存储在不同的商店中?
问)如果商店协调员有多个与同一架构关联的商店,插入如何知道要插入哪个商店?
A)You use the assignObject:toPersistentStore: method on the managed object context.
问) FETCH_SOURCE 具体指的是什么?
A)它只是具有与之关联的fetched属性的托管对象。有点像“自我”
问) FETCHED_PROPERTY 具体指的是什么?
A)它是对您用于查询的获取属性描述实例的引用 - 您可以使用它来插入每个查询变量替换。通过在您正在使用的属性描述实例的userInfo上设置属性(如在Core Data Programming示例中),您可以将该值注入表达式。
感谢!!!!
答案 0 :(得分:0)
答案是:
是的,您需要使用共享模式执行跨商店获取的属性。如果这样做,您需要确保使用assignObject :: method对插入进行属性,如问题中所述。但是,由于SQLLITE持久性存储的限制,像IN $ FETCH_SOURCE.attribute这样的自然事物不起作用。
答案 1 :(得分:0)
问)如果商店协调员有更多 比一个与之相关的商店 相同的架构,如何插入 知道要插入哪个商店?
这是配置的用途。您为每个商店创建配置,然后将实体分配给该配置。然后,使用正确的配置创建存储。保存上下文时,每个实体将自动转到正确的商店。