我需要刪除我的持久存儲(按對象執行對象不實際,因爲我有超過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