1

我注意到,即使我没有访问该关系,当执行获取请求时,一对一关系的错误也会立即触发。特别是,方法中的断点newValueForRelationship:forObjectWithID:withContext:error:会立即在 NSIncrementalStore 子类中命中。

- (id)newValueForRelationship:(NSRelationshipDescription *)relationship
          forObjectWithID:(NSManagedObjectID *)objectID
              withContext:(NSManagedObjectContext *)context
                    error:(NSError **)error

https://developer.apple.com/library/mac/documentation/CoreData/Reference/NSIncrementalStore_Class/index.html#//apple_ref/occ/instm/NSIncrementalStore/newValueForRelationship:forObjectWithID:withContext:error

断点仅在我按预期访问多个关系(延迟加载)时才被命中。

有人可以帮忙吗?

4

1 回答 1

0

这就是设计你自己的 NSIncrementalStore。请阅读 doc Incremental Store Programming Guide

以下是该指南的摘录:

如果后备数据存储使一对一关系随时可用,则增量存储在 newValuesForObjectWithID:withContext:error: 中返回一对一关系。如果您的应用程序和数据存储在延迟所有关系获取时效率更高,则您的存储可能会改为在 newValuesForRelationship:forObjectWithID:withContext:error: 中返回它们。

于 2014-12-09T16:37:59.053 回答