2009-08-04 3 views
0

У меня есть приложение, которое работает в симуляторе. Я читаю и пишу из источника данных sqlite3. Однако, если я перезапущу приложение, то все datg, которые я ранее написал в db, теряются. Данные всегда находятся в исходном состоянии.Запись на SQLite3 на моделирование iPhone

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

Может кто-нибудь подтвердить или опровергнуть это?

Спасибо!

ответ

1

Вам необходимо разместить свой файл db в доступном для записи месте, например. в папке Documents. Все файлы пакета являются файлами только для чтения.

Если вы распространяете исходную базу данных с помощью приложения, вам необходимо скопировать его на Documents (или в другую папку) и использовать копию.

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

+0

Спасибо. Я копирую папку документов. но я не уверен, что im закрывает db должным образом. Попробуйте это и посмотрите, что произойдет. –

+0

ОК. единственное место, которое я вызываю sqlite3_close, - это когда у меня есть ошибка с материалом инициализации db. В моем приложении applicationWillTerminate единственное, что я делаю, - это обновить все сущности данных до db, если они грязные. Кроме этого, я не закрываю db после этого. Должна ли я быть? Это просто sqlite3_close (db)? –

+0

Вы уверены, что не изменяете свою записываемую базу данных каждый раз? – notnoop