私はcoreDataを使用しており、1対多の現実で、フォルダーエンティティとファイルエンティティがあります。フォルダには多くのファイルなどを含めることができます。
つまり、フォルダとファイルをそれぞれ含む2つのViewController、FolderViewControllerとFileViewControllerがあります。これで、folderとfileviewcontrollerの両方からアクセスできるmodalViewができました。この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'
だからこれを解決する方法。
よろしくランジット