我有多个NSPersistentStoreCoordinator实例,每个实例只有一个NSPersistentStore,都指向同一个sqlite文件。在我的测试中,在它们之间传递NSManagedObjectID对象,然后调用
NSManagedObjectContext上的
- (NSManagedObject *)existingObjectWithID:(NSManagedObjectID *)objectID error:(NSError **)error
似乎工作正常,但我还没有遇到苹果的任何文档,证实这应该可行。
所以,我的问题是,如果有人知道这是否应该有效(链接到一些苹果文档确认它会很棒!),如果有人知道这通常不起作用,那我应该不要这样做,那也太棒了!
答案 0 :(得分:1)
调用该方法总是安全的。它是否返回一个对象是另一个故事。
当使用来自不同上下文的对象ID时,如果对象已经被您调用此方法的上下文访问,则只会获得非零结果。这意味着该对象已经存在于持久性存储中,这意味着它已经保存在其原始的托管对象上下文中。
或者换句话说,如果您已经使用ID保存了对象,并且您正在使用该对象的永久(保存后)ID,那么您将只获得非零结果。