Как загрузить данные в Core Data?

Спасибо за помощь

Я пытаюсь добавить основные данные в свой проект, и я застрял в том, где и как добавить фактические данные в постоянное хранилище (я предполагаю, что это место для необработанных данных).

У меня будет 1000 <объектов, поэтому я не хочу использовать plist-подход. Судя по моим поискам, есть подходы xml и csv. Есть ли способ использовать SQL для ввода?

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

Еще раз спасибо за любую помощь.

3 ответа

Решение

Вы можете загрузить свои данные из файла xml/csv/json и создать БД в первый обед вашего приложения (если БД не существует, тогда прочитайте данные и создайте их). Лучшим / более быстрым подходом может быть доставка базы данных sqllite в ваше приложение. Вы можете проанализировать файл в любом формате, который вы хотите на симуляторе, создать БД со всеми вашими сущностями, затем взять его из ApplicationData и просто добавить его в свое приложение в качестве ресурса.

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

Обновление: некоторые люди рекомендуют XML. NSXMLParser почти так же быстр, как JSONKit (но намного быстрее, чем большинство других анализаторов), но синтаксис XML тяжелее, чем JSON. Таким образом, связанный с XML файл, содержащий начальный набор данных, будет иметь больший вес, чем если бы он был в JSON.

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

На сайте разработчиков Apple есть краткая статья об импорте данных: эффективный импорт данных

Вам следует отправлять исходные данные в любом удобном для вас формате (XML позволяет эффективно выполнять инкрементальный анализ, что сокращает объем памяти) и писать процедуру импорта для запуска, если вам необходимо импортировать данные.

Изменить: Имея в виду комментарий EliBud, я все еще считаю подход немного "ненадежным"... Формат базы данных SQLite, используемый CoreData, не тот, который вы бы хотели сгенерировать самостоятельно (это странно, проще говоря, и все еще не то, на что вы действительно должны положиться).

Таким образом, вы хотите использовать фиктивное приложение, работающее на симуляторе, и использовать CoreData для создания базы данных (согласно ответу EliBud). Но вам все равно придется импортировать данные в это приложение-макет! И хотя может иметь смысл сделать это один раз на "реальном" компьютере, а не много раз на мобильном устройстве (т. Е. Копировать файл легко, импортировать данные сложно), вы по существу используете симулятор в качестве администратора. инструмент.

Но эй, если это работает...

Другие вопросы по тегам