IPhone создает базу данных SQLite во время выполнения?

Большинство примеров sqlite, которые я нашел, говорят о создании файла db из командной строки, а затем добавлении его в ваше приложение. Для моего проекта я хотел бы иметь возможность создавать свою базу данных в приложении, когда он запускается в первый раз, а затем сохранять его в файл db в песочнице пользователя. Есть ли способ сделать это?

Ответ 1

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

  • Откройте файл, как обычно, используя sqlite3_open()
  • Запустите ваши команды создания (т.е. создайте свои таблицы, представления и т.д.).

Это действительно все, что нужно.

Ответ 2

Я думаю, что я собираюсь повторить расширяющийся крик, что если вы смотрите на что-либо с базой данных, вы должны посмотреть на CoreData. Он использует SQLLite под ним и упрощает настройку и намного проще переносить позже, когда вы обнаружите, что вам нужно несколько новых вещей в БД!

Ответ 3

Core Data предоставляет простой способ управления этим - он будет искать файл базы данных при запуске, если он не существует, он будет создавать один для вас. Он также автоматически создаст модель для вас на основе диаграммы, которую вы можете создать в xCode.

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

Вы также получаете доступ к данным с созданными объектами данных. Core Data также будет использовать ленивую загрузку для создаваемых объектов, что намного лучше, чем вручную

Для получения дополнительной информации см. демонстрационный проект Locations и ознакомьтесь с основными данными в документации.