Я снова борюсь с CoreData, и мне нужна ваша помощь: P
Я пишу программу для чтения RSS.Дизайн основан на примере Apple TopSongs с использованием библиотеки libxml2.
Когда мое приложение работает, я проверяю, когда было последнее обновление.Если это было более 1 часа назад, я удаляю текущее хранилище и сохраняю все заново.
if ([[NSFileManager defaultManager] fileExistsAtPath:self.persistentStorePath]) {
NSError *error = nil;
BOOL oldStoreRemovalSuccess = [[NSFileManager defaultManager] removeItemAtPath:self.persistentStorePath error:&error];
NSAssert3(oldStoreRemovalSuccess, @"Unhandled error adding persistent store in %s at line %d: %@", __FUNCTION__, __LINE__, [error localizedDescription]);
}
Я вижу, что локальный файл sql удален.
Теперь я создаю некоторыеОперации по загрузке информации из каналов в фоновом режиме.
Пока все отлично работает.
Как и в каждом RSS-канале, есть кнопка обновления, которая предполагает проверять изменения и обновлять coreData.Для начала я решил, что я буду удалять все и перезагружать все (не знаю, насколько это эффективно, но в RSS-канале нет guid, и мне нужно реализовать хэш-функцию для определения, есть ли какие-либо изменения).
Поэтому я в основном вызываю тот же код, что и выше, чтобы удалить хранилище. Повторная загрузка всех RSS-каналов снова (та же логика при первой загрузке приложения)
Я перезагружаю таблицы, но явсе еще можно увидеть те же данные в tableView, все осталось нетронутым.
Я решил пойти еще дальше и удалить магазин без загрузки контента.
if ([[NSFileManager defaultManager] fileExistsAtPath:app.persistentStorePath]) {
NSError *error = nil;
BOOL oldStoreRemovalSuccess = [[NSFileManager defaultManager] removeItemAtPath:app.persistentStorePath error:&error];
NSAssert3(oldStoreRemovalSuccess, @"Unhandled error adding persistent store in %s at line %d: %@", __FUNCTION__, __LINE__, [error localizedDescription]);
}
[self.managedObjectContext save:&err];
[self.fetchedResultsController performFetch:&error];
[self.tableView reloadData]
Я ожидал увидеть пустойтаблицы, но данные все еще были там.
Как это возможно?я удалил хранилище, заново загрузил и перезагрузил данные.
Что я делаю не так?