I am using the following code snippets from apple for Create/Update NSManagedObject in my application
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Add code here to do background processing // // NSManagedObjectContext *private = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; [private setParentContext:mainMoc]; [private performBlock:^{ for (NSDictionary *jsonObject in jsonArray) { NSManagedObject *mo = …; //Managed object that matches the incoming JSON structure //update MO with data from the dictionary } NSError *error = nil; if (![private save:&error]) { NSLog(@"Error saving context: %@\n%@", [error localizedDescription], [error userInfo]); abort(); } [mainMoc performBlockAndWait:^{ NSError *error = nil; if (![mainMoc save:&error]) { NSLog(@"Error saving context: %@\n%@", [error localizedDescription], [error userInfo]); abort(); } }]; }]; dispatch_async( dispatch_get_main_queue(), ^{ // Add code here to update the UI/send notifications based on the // results of the background processing }); }); I have two doubts
For just reading the values from my model using the above code,
[private performBlock:^{});is required ?- Is there any better approach for Create/Update opertaions in background thread. Am I using the best approach for mentioned operations ?
Thanks in advance