我整天都在努力解决一个我发现是错误的NSInternalInconsistencyException错误。我收到的错误控制台消息是“此 NSPersistentStoreCoordinator 没有持久存储。它无法执行保存操作。” 我还得到“执行被中断,原因:EXC_BAD_ACCESS(代码=1,地址=0x1)。”
我的 App Delegate 中有以下代码:
- (void)saveContext
{
    NSError *error = nil;
    NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
    if (managedObjectContext != nil) {
        if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
            NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
            abort();
        }
    }
}
#pragma mark Core Data stack
- (NSManagedObjectContext *)managedObjectContext {
    if (_managedObjectContext != nil) {
        return _managedObjectContext;
    }
    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        _managedObjectContext = [[NSManagedObjectContext alloc] init];
        [_managedObjectContext setPersistentStoreCoordinator: coordinator];
    }
    return _managedObjectContext;
}
- (NSManagedObjectModel *)managedObjectModel {
    if (_managedObjectModel != nil) {
        return _managedObjectModel;
    }
    _managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
    return _managedObjectModel;
}
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (_persistentStoreCoordinator != nil) {
        return _persistentStoreCoordinator;
    }
    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"shindy.sqlite"];
    NSError *error = nil;
    _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }
    return _persistentStoreCoordinator;
}
#pragma mark Application's documents directory
- (NSURL *)applicationDocumentsDirectory
{
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
我已经仔细阅读了与此类似的其他问题,看来我的代码是一致的,我不应该遇到这个问题。然而,我是...
我已经尝试清理和删除应用程序并重新安装。我在设备和模拟器上都尝试了该应用程序。我将附加的 URLPath 的名称“shindy.sqlite”更改为我以前没有使用过的各种名称。[self saveContext];我还尝试在我的方法中强制实例化,applicationDidFinishLaunching以使我的应用程序创建商店。
我所有解决问题的尝试都只是返回了相同的错误。我不知道还能尝试什么。