我需要删除我的持久存储(按对象执行对象不实际,因为我有超过100,000个对象)。我已经试过这样:如何删除核心数据持久性存储
- (IBAction)resetDatabase:(id)sender {
NSPersistentStore* store = [[__persistentStoreCoordinator persistentStores] lastObject];
NSError *error = nil;
NSURL *storeURL = store.URL;
// release context and model
[__managedObjectContext release];
[__managedObjectModel release];
__managedObjectModel = nil;
__managedObjectContext = nil;
[__persistentStoreCoordinator removePersistentStore:store error:nil];
[__persistentStoreCoordinator release];
__persistentStoreCoordinator = nil;
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];
if (error) {
NSLog(@"filemanager error %@", error);
}
// recreate the stack
__managedObjectContext = [self managedObjectContext];
}
但是,当我尝试插入实体进店之后,我得到这个错误:
This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.
更新: 我试着释放MOC和MOM后再取出持久性商店,但我仍然得到同样的错误。
哇,我认为问题是'removePersistentStore'。没有这条线它工作...我很好奇,但为什么。 – David 2011-04-24 16:56:02
我有一种感觉,即在使用“允许外部存储”的核心数据属性时,删除.sqlite文件会留下大量垃圾。 – magma 2014-01-08 01:45:31
岩浆是正确的,如果你使用iCloud被使用等问题就会发生。 – 2015-04-21 01:41:17