У меня есть Базовые Данные, работающие в моем приложении. Так, я выбираю XML-файл, анализирую данные в объекты модели и вставляю их в базовые данные. Они сохраняются в персистентном хранилище, и я могу получить доступ к ним, когда я повторно запускаю приложение. Однако я хочу смочь обновить данные в персистентном хранилище по желанию, таким образом, я должен сначала удалить существующие объекты из хранилища. Существует ли простой метод для этого?
Спасибо
Я нашел это решение:
[managedObjectContext lock];
[managedObjectContext reset];//to drop pending changes
if ([persistentStoreCoordinator removePersistentStore:persistentStore error:&error])
{
NSURL* storeURL = [NSURL fileURLWithPath:[self pathForPersistentStore]];
[[NSFileManager defaultManager] removeFileAtPath:[storeURL path] handler:nil];
[self addPersistentStore];//recreates the persistent store
}
[managedObjectContext unlock];
Вы можете перебрать все объекты и удалить их, сделав следующее:
[managedObjectContext deleteObject:someObject];
Если вы хотите удалить все объекты, то, вероятно, быстрее всего будет удалить хранилище, а затем заново создать стек CoreData.
Самый быстрый способ все бросить - отправить контексту управляемого объекта сообщение reset
.