Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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