База данных SQLite не обновляется в симуляторе iPhone - PullRequest
3 голосов
/ 06 июля 2011

Итак, я получил базу данных SQLite, работающую для моего приложения.Он загружает текстовые значения из базы данных, копирует их в массив и отображает их в табличном представлении.

При первом запуске я получил значения во вторник, четверг, субботу.Затем я изменил базу данных с помощью надстройки SQLite Manager для Firefox (я также использовал ее для ее создания), добавив новые значения.Однако новые значения не отображаются, и даже если я удаляю такие значения, как суббота, снова появляется тот же старый «вторник, четверг, суббота».Я сбит с толку.

Примечания:

  • Я попытался перезапустить Xcode и даже компьютер.
  • Когда я изменяю базу данных в SQLite Manager, время обновления нафайл базы данных обновляется в Xcode.
  • Управление моей базой данных, как и в учебном руководстве, происходит в AppDelegate.
  • В appdelegate: (BOOL) приложение: (UIApplication *) приложение didFinishLaunchingWithOptions: (NSDictionary *) launchOptions У меня есть этот код в начале

    routines = nil; // Reset array
    database = nil; // not opened yet
    selStmt = nil; // no compiled statement yet
    updStmt = nil; // no compiled statement yet
    

Я следую этому руководству и изменяю его в соответствии с моими потребностями: http://technologyservants.com/index.php?option=com_content&view=article&id=46:shopping-list-an-iphone-sqlite-tutorial

Ответы [ 2 ]

5 голосов
/ 06 июля 2011

Вы, вероятно, копируете базу данных из комплекта приложения в каталог документов, если она еще не существует в каталоге документов.

При следующем запуске приложения (с новой базой данных) выубедитесь, что БД существует в каталоге документов пользователя, и, возможно, вы больше не копируете его.Вы не сравниваете версии БД, вы просто проверяете, что БД с таким именем существует.

Если вы все еще в разработке, простое решение - просто сбросить настройки содержимого и настроек симулятора, что заставит ваше приложение снова скопировать базу данных.

2 голосов
/ 06 июля 2011

Как сказал Firoze (я только просмотрел учебник, так что простите, если я ошибаюсь), при первой загрузке база данных копируется из комплекта в каталог документов.Для каждого запуска после этого нет необходимости копировать базу данных, поскольку она уже существует.

Если вы работаете на симуляторе и хотите изменить данные, чтобы они отображались в реальном времени, пока вы работаете, вам нужно открытьбаза данных расположена по адресу

/Users/<username>/Library/Application Support/iPhone Simulator/4.3.2/Applications/<app bundle identifier>/Documents/<database file>

Файл может находиться не в этом точном месте, но дает представление о том, с чего начать смотреть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...