【发布时间】:2010-11-30 04:52:44
【问题描述】:
我正在尝试在后台线程上的两个对象之间建立关系,而 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] 上下文结果是否为“真”相等条件。
非常感谢任何帮助,
-罗伯特
【问题讨论】:
标签: objective-c cocoa core-data