我正在尝试在后台线程上构建两个对象之间的关系,并且Core Data继续解雇“非法尝试建立关系”
以下是一些正在发生的事情的基本代码:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
@synchronized(self) {
return persistentStoreCoordinator;
}
return nil;
}
- (void)startBackgroundTask {
[self performSelectorInBackground:@selector(backgroundTask:) withObject:managedObjectID];
}
- (void)backgroundTask:(NSManagedObjectID *)pManagedObjectID {
NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator:[self persistentStoreCoordinator]];
NSManagedObject *object = [managedObjectContext objectWithID:pManagedObjectID];
NSManagedObject *childObject = [NSEntityDescription insertNewObjectForEntityForName:@"ChildObject" inManagedObjectContext:managedObjectContext];
[object setValue:childObject forKey:@"childObject"];
[managedObjectContext save:nil];
}
我正确地创建了一个“线程安全的”后台线程管理对象上下文,并通过对象id获取对象,因此不确定它为什么不起作用。
还要将[object managedObjectContext]上下文结果与“true”相等的条件进行比较。
非常感谢任何帮助,
-Robert
答案 0 :(得分:0)
这是相当愚蠢的。
在我的代码与这个例子中,我提出我正在创建一个瞬态对象,而不是将其插入后台管理对象上下文。