- (IBAction)add:(id)sender {
Player *playerObject = [NSEntityDescription insertNewObjectForEntityForName:@"Player" inManagedObjectContext:self.cdViewController.managedObjectContext];
playerObject.name = self.nameTF.text;
playerObject.age = [NSNumber numberWithInteger:[self.ageTF.text integerValue]];
playerObject.team = self.team;
[self.cdViewController saveContext];
[self dismissViewControllerAnimated:YES completion:nil];
// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// NSManagedObjectContext *tempContext = [[NSManagedObjectContext alloc]init];
// [tempContext setPersistentStoreCoordinator:sharedPersistenStoreCoordinator];
//
// Player *playerObject = [NSEntityDescription insertNewObjectForEntityForName:@"Player" inManagedObjectContext:tempContext];
// playerObject.name = self.nameTF.text;
// playerObject.age = [NSNumber numberWithInteger:[self.ageTF.text integerValue]];
// //playerObject.team = self.team;
// playerObject.team = (Team *)[tempContext objectWithID:self.teamID];
// NSError *error = nil;
// if (tempContext && [tempContext hasChanges] && ![tempContext save:&error]) {
// NSLog(@"Error %@, %@",error,[error localizedDescription]);
// abort();
// }
//
// dispatch_async(dispatch_get_main_queue(), ^{
// [self dismissViewControllerAnimated:YES completion:nil];
// });
//
// });
}
- (void)mocDidSaveNotification:(NSNotification *)notification
{
NSManagedObjectContext *saveContext = [notification object];
if (saveContext == self.managedObjectContext ) {
return;
}
if (saveContext.persistentStoreCoordinator != self.persistentStoreCoordinator) {
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Merge changes from other contex.
");
[self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
});
}
测试环境:Xcode 6.2,iOS 6.0 以上