Core data 此NSPersistentStoreCoordinator没有持久存储(未知)。它无法执行保存操作

Core data 此NSPersistentStoreCoordinator没有持久存储(未知)。它无法执行保存操作,core-data,ios7,xcode6,persistence,Core Data,Ios7,Xcode6,Persistence,我正在使用Microsoft Azure web服务创建应用程序。单击“注销”按钮,我需要完全清除本地核心数据库,所有数据将在使用相同的用户名和密码再次登录后重新加载。要删除核心数据,我使用以下方法 - (void) resetApplicationModel { AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; NSManagedObjectContext *context

我正在使用Microsoft Azure web服务创建应用程序。单击“注销”按钮,我需要完全清除本地核心数据库,所有数据将在使用相同的用户名和密码再次登录后重新加载。要删除核心数据,我使用以下方法

- (void) resetApplicationModel {
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = delegate.managedObjectContext;

for (NSPersistentStore *store in delegate.persistentStoreCoordinator.persistentStores) {
    NSError *error;
    NSURL *storeURL = store.URL;
    NSLog(@"storeURL: %@", storeURL);
    NSPersistentStoreCoordinator *storeCoordinator = delegate.persistentStoreCoordinator;
    [storeCoordinator removePersistentStore:store error:&error];
    [[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];

    NSLog(@"There are errors: %@", error);
}

delegate.persistentStoreCoordinator = nil;
context = nil;
delegate.managedObjectModel = nil;
}
这是删除我的所有数据,但当我试图再次登录而不关闭应用程序时,会出现以下错误

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores (unknown).  It cannot perform a save operation.'
发生这种情况的原因是,在删除数据时,我将persistentStoreCoordinator设置为nil,并且正在AppDelegate文件中创建其实例。有人能给我建议解决这个问题的办法吗


提前谢谢你的帮助

您的代码有许多错误

无论如何,要实现您所需要的,请尝试此方法的修改版本
resetApplicationModel

- (void) resetApplicationModel {
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
//  NSManagedObjectContext *context = delegate.managedObjectContext;

    for (NSPersistentStore *store in delegate.persistentStoreCoordinator.persistentStores) {
        NSError *error;
        NSURL *storeURL = store.URL;
        NSLog(@"storeURL: %@", storeURL);
//      NSPersistentStoreCoordinator *storeCoordinator = delegate.persistentStoreCoordinator;
//      [storeCoordinator removePersistentStore:store error:&error];
        [[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];

        NSLog(@"There are errors: %@", error);
    }

//  delegate.persistentStoreCoordinator = nil;
//  context = nil;
//  delegate.managedObjectModel = nil;
}

您的目的是删除注释掉的代码行。

要检查,您只想删除所有数据?对不起。我不能完全理解你。我得到的是,我想在这里实现数据删除。我想在用户单击注销按钮时完全删除我的核心数据库。按照您的建议注释这些行,这并不是删除我的本地数据库。所以,如果可能的话,请告诉我如何改进上述代码以完全删除数据。看来您不了解核心数据。删除持久存储就是删除数据库。似乎没有理由将核心数据框架设置为nil。我理解这一部分,删除持久存储就是删除数据库。但在同一方面,只要将storeURL.path设置为nil,就不会删除本地数据库中的所有条目。