Можно ли перезаписать sqlite db в приложении для iPhone - PullRequest
2 голосов
/ 31 января 2012

Я создал приложение, основанное на базе данных Sqlite.

Итак, в моем приложении изначально я создал базу данных Sqlite с одной информацией, и я добавил эту базу данных в папку «Ресурсы» в моемproject.

При первом запуске приложения, проверяя БД в папке «Документы» («Песочница»), если файл отсутствует, копируйте БД из папки «Ресурсы в документ».

После этого выполняются все операции вставки и удаления.выполнение только на Db в папке с документами.не на БД в папке ресурсов.

Итак, я вставил 50 элементов в БД, а затем удалил приложение с устройства Simulator (или).

При удалении приложения БД также удалялась с помощьючто.

Мой вопрос ==> Как переписать Sqlite db (в папке Resource) с db (в папке Documents) при каждом обновлении в приложении (вставка, удаление)?

, потому чтоФайл db в папке Documment получает обновление при вставке в него элементов.

Я использую XCode 4.2 с iOS 5 SDK.

Ответы [ 5 ]

3 голосов
/ 31 января 2012

Вы не можете изменить комплект ресурсов после того, как вы его создали (т.е. файл приложения). Вы не можете перезаписать базу данных SQLite в папку ресурсов вашего пакета.

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

EDIT:

Вы можете перейти к / Пользователи // Библиотека / Поддержка приложений / iPhone Simulator / "Используемая версия симулятора" / Application / "проверить все папки, чтобы найти в них свое приложение папка " /" YOUR APP.app "

Затем Щелкните правой кнопкой мыши APP-файл и выберите Показать содержимое пакета . Теперь вы сможете увидеть ресурсы, которые вы использовали в файле приложения. Вы можете искать в вашей БД и BACKUP / REPLACE it.

1 голос
/ 31 января 2012

Нет способа, которым вы можете изменить любой ресурс, присутствующий в комплекте приложения. .
. Поэтому мы копируем файл базы данных в каталог документов приложения, чтобы мы могли изменить его.
Если вы хотите сохранить данные, создайте резервную копию данных с помощью службы iCloud .

1 голос
/ 31 января 2012

Сначала файл базы данных в комплекте приложений (папка ресурсов) доступен только для чтения и не может быть изменен приложением.

Во-вторых, когда установлено обновление, все файлы в комплекте приложений получаютзаменены файлы в обновлении.Файлы в каталоге документов не затрагиваются.

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

0 голосов
/ 31 января 2012

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

0 голосов
/ 31 января 2012

Вы должны сделать это, открыв другой дескриптор базы данных в папке ресурсов и выполнить операцию для этого тоже. Я полагаю, вам это нужно только для удобства запуска в симуляторе.

Вы не можете сделать это при запуске на устройстве.

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