Je suis en train de construire une relation entre deux objets sur un thread d'arrière-plan et les données de base continue à tirer de « tentative llegal d'établir une relation »tentative illégale d'établir une relation dans les données de base
Voici un code de base de ce qui se passe:
- (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];
}
Je crée correctement un fil fond « thread-safe » géré contexte de l'objet et aller chercher l'objet via l'ID d'objet si peu sûr pourquoi il ne fonctionne pas.
Comparez également les contextes [object managedObjectContext] pour obtenir une condition d'égalité "true".
Toute aide grandement appréciée,
-Robert