【发布时间】:2015-10-14 12:31:47
【问题描述】:
我已经搜索并没有找到太多关于创建备份和恢复数据库文件的信息,所以我希望比我更聪明的人可以为我指明正确的方向。
这是在 OSX 上。
我成功创建了备份,恢复是主要问题。但是我快到了,我已经成功恢复了数据库文件,但我需要重新启动应用程序才能正常工作。
恢复方法:
[_managedObjectContext reset];
NSPersistentStore *currentStore = self.persistentStoreCoordinator.persistentStores.lastObject;
[_persistentStoreCoordinator removePersistentStore:currentStore error:&error];
NSFileManager *filemanager;
filemanager = [NSFileManager defaultManager];
if ([filemanager fileExistsAtPath:[url path]]) {
//If the file exist, remove file
if ([filemanager removeItemAtURL:url error:&error]) {}
}
[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:urlbackup options:nil error:&error];
currentStore = self.persistentStoreCoordinator.persistentStores.lastObject;
[_persistentStoreCoordinator migratePersistentStore:currentStore toURL:url options:options withType:NSSQLiteStoreType error:&error];
一切正常,如果我重新启动应用程序。如何在不重新启动应用程序的情况下使其工作?看来我需要重新加载所有数据并刷新视图。
我尝试了以下方法但没有成功:
[arrayController rearrangeObjects];
[tableView reloadData];
再次,如果我重新启动应用程序一切正常,备份文件将恢复。任何指针将不胜感激。
【问题讨论】:
-
@littleDrummerBoy:你有什么解决办法吗?我也有同样的情况。
-
@Bucket : 很抱歉评论晚了,最近经常出差。有没有办法在这里发私信?如果您仍需要帮助,请告诉我。
标签: objective-c cocoa core-data