在上下文崩溃的情况下保存核心数据

我有一个方法创build一个单独的线程:

// Create thread dispatch_queue_t uniqueQueue = dispatch_queue_create("Unique Email Queue", NULL); // Run block on another thread called downloadQueue dispatch_async(uniqueQueue, ^{ // Get the persistance store coordinator AppDelegate* appDelegate = [UIApplication sharedApplication].delegate; self.persistentStoreCoordinator = appDelegate.persistentStoreCoordinator; // Setup the managed object context NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] init]; [managedObjectContext setPersistentStoreCoordinator:self.persistentStoreCoordinator]; // Save to core data for redundancy User *coreDataUser = [NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:self.managedObjectContext]; coreDataUser.username = [emailStr lowercaseString]; coreDataUser.email = emailStr; coreDataUser.name = nameStr; NSError *error; if (![managedObjectContext save:&error]) { NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); } } 

该应用程序总是在这条线上崩溃:

 User *coreDataUser = [NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:self.managedObjectContext]; 

我正在使用本教程作为参考: http : //www.codigator.com/tutorials/ios-core-data-tutorial-with-example/

我的AppDelegate.m文件包含这个:

 - (NSManagedObjectModel *)managedObjectModel { if (_managedObjectModel != nil) { return _managedObjectModel; } _managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil]; return _managedObjectModel; } //3 - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { if (_persistentStoreCoordinator != nil) { return _persistentStoreCoordinator; } NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"HappyPeople.sqlite"]]; NSError *error = nil; _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { /*Error for store creation should be handled in here*/ } return _persistentStoreCoordinator; } - (NSString *)applicationDocumentsDirectory { return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; } 

我错过了什么?

另外我怎样才能看到数据库中的数据?