Предоставить базовые данные для приложения Core Data?

StackOverflow https://stackoverflow.com/questions/928177

Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top