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