Как я могу отправить свое приложение с предварительно заполненной базой данных Core Data?

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

Ответы

Ответ 1

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

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

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

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

Ответ 2

Смотрите пример CoreDataBooks, в котором есть пример кода для копирования базы данных при первом запуске.

EDIT: Я создал базовую структуру данных (читайте здесь: http://bikepress.org/?p=1120), которая включает эту функцию.

Ответ 3

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

Ответ 4

В хранилище приложений Основной редактор данных. В качестве альтернативы вы могли бы создать собственное приложение для Mac только для этой конкретной БД и управлять им оттуда. Если количество записей по умолчанию невелико, тогда вам лучше хранить его в plist или что-то еще и загружать его в БД после первого запуска.

Ответ 5

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