2

我有多个 NSPersistentStoreCoordinator 实例,每个实例只有一个 NSPersistentStore,都指向同一个 sqlite 文件。在我的测试中,在它们之间传递 NSManagedObjectID 对象,然后调用

- (NSManagedObject *)existingObjectWithID:(NSManagedObjectID *)objectID error:(NSError **)error

关于 NSManagedObjectContext 似乎工作正常,但我还没有遇到来自苹果的任何文档,证实这应该工作正常。

所以,我的问题是,如果有人知道这是否应该工作(一些苹果文档的链接确认它会很棒!),是否有人知道这通常不应该工作,我不应该这样做这,那也太棒了!

4

1 回答 1

1

调用该方法总是安全的。它是否返回一个对象是另一回事。

当使用来自不同上下文的对象 ID 时,只有当您调用此方法的上下文已经可以访问该对象时,您才会得到非零结果。这意味着该对象已经存在于持久存储中,这意味着它已经保存在其原始托管对象上下文中。

或者换句话说,如果您已经使用 ID 保存了对象,并且您正在使用对象的永久(保存后)ID,那么您只会得到非零结果。

于 2014-02-06T04:27:57.993 回答