Когда я обновляю свое приложение, при запуске я делаю некоторые вещи с моей моделью CoreData
, а затем заменяю файл .sqlite, который использует постоянное хранилище:
NSArray *stores = [__persistentStoreCoordinator persistentStores];
for(NSPersistentStore *store in stores) {
[__persistentStoreCoordinator removePersistentStore:store error:nil];
[[NSFileManager defaultManager] removeItemAtPath:store.URL.path error:nil];
}
__persistentStoreCoordinator = nil;
[self persistentStoreCoordinator];
__managedObjectContext = nil;
[self managedObjectContext];
Все работает нормально,просто так, как это принято.Но когда я закрываю приложение с помощью кнопки «Домой», происходит сбой:
[NSPersistentStoreCoordinator retain]: message sent to deallocated instance
Я использую ARC ... на самом деле вы можете сказать, что это не имеет значения, потому что происходит сбой при закрытии, поэтому вы нене замечаю аварии.Но, конечно, это не вариант, и должен быть правильный способ сделать это!?
Есть идеи?Почему удержание отправляется на NSPersistenStoreCoordinator
?Он имеет отношение к __persistentStoreCoordinator = nil;
, но мне нужно его обнулить, иначе он не использует новый .sqlite.
Cheers!