2010-11-30 63 views
0

我試圖建立在後臺線程兩個對象之間的關係,核心數據不斷髮射了「llegal嘗試建立關係」非法嘗試建立在覈心數據的關係

下面是一些基本的代碼中正在發生的事情:

- (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]上下文導致「真實」等同的情況。

任何幫助非常感謝,

- 羅伯特

回答

0

這是相當愚蠢的。

在我的代碼和這個例子中,我提出了我創建一個瞬態對象,而不是將它插入到後臺管理對象上下文中。