提取属性,跨店关系

时间:2009-08-01 20:09:33

标签: objective-c cocoa core-data

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

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示例中),您可以将该值注入表达式。

感谢!!!!

2 个答案:

答案 0 :(得分:0)

答案是:

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

答案 1 :(得分:0)

  

问)如果商店协调员有更多   比一个与之相关的商店   相同的架构,如何插入   知道要插入哪个商店?

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