【发布时间】:2014-07-05 18:43:56
【问题描述】:
如果 nsmanagedobject 的映射包含 identificationAttributes 并且只是从 JSON 更新此对象的属性值,那么谁能确认我的经验表明 NSFetchedResultsController 没有执行提取?
我对 Restkit 的另一个问题是这个“identificationAttributes”功能的行为。如果 Restkit 要将 json 数据映射到这样一个(唯一的)核心数据对象,那么它会查看是否已经存在这个 nsmanagedobject 的实例。但似乎这个实例正在全局搜索,也就是说,在商店中只能有一个和单个具有这个特定标识属性的特定 nsmanagedobject 实例。我希望不是每个商店都有一个实例,而是 每个所有者(与此 nsmanagedobject 的父拥有关系)。
所以我期望这个结构(id是标识属性值):
OwnerA/OwnerB 和 Owned 是 NSManagedObject 的子类。所有映射都使用所有类的标识属性来保持它们的唯一性。
响应附带: 业主A:
第二个响应是: 业主乙:
但是我从 Restkit 中得到了这个结构:
响应附带: 业主A:
第二个响应是: 业主乙:
但 OwnerA 失去了与 Owned(id==X) 的关系
业主A:
因为唯一具有此 id==X 的 Owned 实例是由 OwnerB 的关系定义的。
所以只有一个 Owned 实例,其 id 属性为 X。但是,如果这种独特性是由每个所有者而不是全局决定的,那就更好了。
如果谓词正在使用具有 Owned.attributeValue == 的语句,则 NSFetchedResultsController 事件不会注册具有 id 属性 X 的 Owned 的进一步更新... NSPredicate 对于检测关系的变化是无用的。我知道,但如果这样的对象正在使用 identificationAttributes,它也不会检测到 nsmanagedobjects 的变化。
感谢您的评论。
【问题讨论】:
标签: core-data restkit nsfetchedresultscontroller restkit-0.20