0
我需要從後臺線程改變一些實體的,所以我下面dispatch_async:CoreData和使用對象從主managedObjectContext
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSManagedObjectContext *parent = [Default managedObjectContext];
NSManagedObjectContext *editContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:parent.concurrencyType];
[editContext setPersistentStoreCoordinator:[Default persistentStoreCoordinator]];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(saveChanges:)
name:NSManagedObjectContextDidSaveNotification
object:editContext];
NSFetchRequest *request = [NSFetchRequest new];
...
NSArray *fetchedObjects = [context executeFetchRequest:request error:nil];
NSError *error;
[editContext save:&error]
});
這是工作,但有時它停止工作,只是從功能退出executeFetchRequest:請求。它發生在模擬器上。 那麼它是從後臺線程更改數據的正確方法?
感謝您的意見,它可以幫助我很多 –
很高興能幫到您;) – danypata