Предоставить базовые данные для основного приложения данных? - PullRequest
14 голосов
/ 30 мая 2009

Я работаю над приложением Core Data (для iPhone 3.0, хотя я не думаю, что здесь что-то действительно имеет значение), и оно должно будет поставляться с «стартовой» базой данных, заполненной данными. С SQLite я бы просто сделал так, чтобы приложение скопировало заполненную базу данных из комплекта в каталог документов приложения при первом запуске, а затем загрузило эту базу данных - вся информация пришла бы вместе с ней, и мы были бы готовы к работе. Но с Core Data я не совсем уверен, смогу ли я просто сохранить хранилище Persistent в комплект приложений и скопировать его, прежде чем Core Data начнет делать свое дело. Это вызовет какие-либо проблемы? Исходных данных довольно много, поэтому я не хочу упаковывать их в другой формат и должен анализировать их.

Ответы [ 2 ]

17 голосов
/ 30 мая 2009

Да, вы можете скопировать предварительно заполненное постоянное хранилище.

Я создал приложение для Mac, которое заполняет магазин. Он копируется в мой пакет и при запуске копируется в каталог Docs. Это отлично работает. Мне сказали, что пример Core Data Books был разработан таким же образом.

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

1 голос
/ 14 декабря 2009

На самом деле есть хитрость: вы должны дать имя файлу, который вы собираетесь скопировать, с расширением, отличным от ".sqlite", ".bin" подойдет. В противном случае Xcode изменит содержимое файла, когда скопирует его в приложение на этапе сборки, и не загрузится.

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