Я использую следующий метод для удаления всех объектов из CoreData:
- (void)removeAllObjects:(id)sender{
[[self managedObjectContext] lock];
[[self managedObjectContext] reset];
NSPersistentStore *store = [[[self persistentStoreCoordinator] persistentStores] lastObject];
if (store)
{
NSURL *storeUrl = store.URL;
NSError *error;
if ([[self persistentStoreCoordinator] removePersistentStore:store error:&error])
{
__persistentStoreCoordinator = nil;
__managedObjectContext = nil;
__managedObjectModel = nil;
NSLog(@"storeUrl %@", storeUrl);
if (![[NSFileManager defaultManager] removeItemAtPath:storeUrl.path error:&error])
{
NSLog(@"\nresetDatastore. Error removing file of persistent store: %@",[error localizedDescription]);
}
else
{
NSLog(@"Recreating");
//now recreate persistent store
// [self persistentStoreCoordinator];
[[self managedObjectContext] unlock];
}
}
else
{
NSLog(@"\nresetDatastore. Error removing persistent store: %@", [error localizedDescription]);
}
}
else
{
NSLog(@"\nresetDatastore. Could not find the persistent store");
}
}
Кажется, все работает отлично.После удаления всего я могу снова добавить новые объекты.Но новые объекты не появляются в моем NSArraycontroller, который связан с managedObjectContext.После перезапуска приложения все новые объекты находятся в ArrayController (и появляются в моем tableView)
Я проверил, теряются ли привязки как-то, но все правильно.
Что я делаю не так?Я должен пропустить то, что происходит при запуске.Но что?o_O
(у меня включен ARC)