Я написал код, который удаленно обновляет базу данных sqlite в моем приложении для iPhone. После загрузки и сохранения новой базы данных она заменяет старую с помощью [NSFileManager removeItemAtPath: DBPath] и [NSFileManager copyItemAtPath: newDBTempPath to: DBPath] . Все эти операции проходят гладко.
Однако, когда я впоследствии открываю новую базу данных, не закрывая приложение, и запускаю запрос, я иногда получаю только 1 результат (первый из 807, который я ожидаю), а иногда ни один. Запрос выполняется без каких-либо ошибок. Затем, когда я закрываю (закрываю) приложение и снова открываю, тот же запрос возвращает мне мои 807 результатов . Это происходит как на симуляторе, так и на реальном iPhone.
Что я мог делать не так?
Спасибо!
ОБНОВЛЕНИЕ 1: Произошла ошибка в моем программировании. Теперь, когда я открываю только что скопированную базу данных в Navicat, я получаю сообщение об ошибке, поэтому при загрузке происходит что-то не так.
ОБНОВЛЕНИЕ 2: Исправлено! Чтобы сэкономить память, я записал каждый загруженный блок размером 100 КБ в файл, но забыл записать последний блок, когда NSURLConnection был закончен. Это приводит к неполному файлу, DOH!