我正在为编辑实体创建临时上下文:
NSManagedObjectContext *parent = [Default managedObjectContext];//my main managed context
NSManagedObjectContext *_createNewContex = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[_createNewContex setParentContext:parent];
在_createNewContex中我试图创建我的临时条目进行编辑。
MyTempEntry *entry = [MyTempEntry createInContext:_createNewContex];
创建好了但是如果尝试从父上下文中为条目分配关系:
entry.entryFromParent = parentEntry;
我有错误:
* 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'在不同上下文中的对象之间建立关系的非法尝试'entryFromparent'
答案 0 :(得分:2)
你不能在上下文之间使用对象。您需要使用其objectID或其他值在辅助上下文中查找对象。
然后可以使用辅助上下文中的对象来创建关系。
类似于下面的粗略代码
NSManagedObjectID *objectID = [parentEntry objectID];
id newContextParentEntry = [_createNewContext objectWithID:objectID];
entry.entryFromParent = newContextParentEntry;