【发布时间】:2013-01-16 18:47:22
【问题描述】:
我正在使用 coreData,具有一对多关系,我有一个文件夹实体和一个文件实体。一个文件夹可以有很多文件等等。
所以,我有两个 ViewController,FolderViewController 和 FileViewController,它们分别包含文件夹和文件。现在我有一个 modalView,它可以从文件夹和文件 viewcontroller 访问。在这个 VC 中,我有一个按钮来重置所有数据。因此,当我单击此按钮时,我希望所有数据都应重置。
我使用了这段代码,这个函数写在 appdelegate.m 中并从我的 VC 中调用。
- (void)resetToDefault
{
NSError * error;
// retrieve the store URL
NSURL * storeURL = [[__managedObjectContext persistentStoreCoordinator] URLForPersistentStore:[[[__managedObjectContext persistentStoreCoordinator] persistentStores] lastObject]];
// lock the current context
[__managedObjectContext lock];
[__managedObjectContext reset];//to drop pending changes
//delete the store from the current managedObjectContext
if ([[__managedObjectContext persistentStoreCoordinator] removePersistentStore:[[[__managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&error])
{
// remove the file containing the data
[[NSFileManager defaultManager] removeItemAtURL:storeURL error:&error];
//recreate the store like in the appDelegate method
[[__managedObjectContext persistentStoreCoordinator] addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];//recreates the persistent store
}
[__managedObjectContext unlock];
//that's it !
NSLog(@"buttonReset Pressed");
}
所以在我关闭视图时单击 resetButton 后,我收到此错误
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Object's persistent store is not reachable from this NSManagedObjectContext's coordinator'
那么如何解决这个问题。
问候 兰吉特
【问题讨论】:
-
你想做什么?删除 CoreData 中的每件事?
-
我的意思是我要删除所有文件夹和每个文件夹中的所有文件,并且应用程序应该处于默认状态。
-
你的意思是让应用像刚刚安装的一样?
-
@xlc0212,你知道怎么解决吗
-
抱歉暂时没有明确的解决方案
标签: ios ios5 core-data ios6 persistent-storage