非法企图在核心数据中建立关系

时间:2010-11-30 04:52:44

标签: objective-c cocoa core-data

我正在尝试在后台线程上构建两个对象之间的关系,并且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

1 个答案:

答案 0 :(得分:0)

这是相当愚蠢的。

在我的代码与这个例子中,我提出我正在创建一个瞬态对象,而不是将其插入后台管理对象上下文。