Предварительно загруженная база данных на iPhone?

Я разрабатываю приложение, предназначенное только для чтения. Данные имеют отношения, поэтому я не могу просто использовать plist или что-то подобное.

Вопросов:

  • Должен ли я использовать Core Data для такого требования?
  • Если да, то как я могу ввести данные, а затем отпустить приложение с этими данными?
  • Как я могу сделать это так, чтобы приложение не нуждалось в повторном заполнении базы данных каждый раз, когда она загружается?
  • Есть ли способ создать модель Core Data с использованием SQL-команд с sqlite (т.е. вставить в и т. Д.)?

В моем коротком опыте работы с iPhone у вас есть два варианта.

  1. Напишите функцию импорта данных и запустите ее при первом запуске приложения.
  2. Используйте решение 1, но создайте исходный файл sqllite в симуляторе, а затем при первом запуске приложения скопируйте его в каталог документов приложения.

Из прошлого опыта вариант 2 намного быстрее для пользователей, и предпочтительное решение.

Для этого вы можете использовать базу данных SQLite.

  1. Создайте модель в приложении iOS.
  2. Создание и заполнение базы данных в приложении командной строки утилиты Mac OSX
  3. Скопируйте файл sqlite в приложение iOS и свяжите его с кодом

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

  • Основные данные по iOS 5 Учебное пособие: Начало работы
  • Основные данные по учебнику iOS 5: как загружать и импортировать существующие данные

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

И вы сделали.