我有一个视图,可以从main检索保存的实体(Route *)NSManagedObjectContext
。我想将其导入到中tempContext
。按照Marcus Zarra的示例,我这样做:
NSManagedObjectContext *moc = _route.managedObjectContext;
NSManagedObjectID *routeId = [_route objectID];
NSPersistentStoreCoordinator *psc = moc.persistentStoreCoordinator;
self.tempContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[self.tempContext setPersistentStoreCoordinator:psc];
NSManagedObject *localRoute = [self.tempContext objectWithID:routeId];
[localRoute moToDictionary:localRoute];
self.tempContext.parentContext = moc; // crashes here
一切都很好,直到我尝试设置parentContext
我的tempContext
到主MOC。我得到了错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Context already has a coordinator; cannot replace.'
我了解它告诉我无法更改persistentStoreCoordinator
。但是我不确定为什么会告诉我这一点。当我设置一个断点时,tempContext
与主Moc的内存地址不同。另外,self.tempContext.parentContext
为零。所以我想如果它为nil,我可以将nil参数设置为moc,但是它会崩溃。有什么想法吗?提前致谢!
对于托管对象上下文,您可以
但不是两者兼而有之。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句