Как загрузить данные в Core Data? - PullRequest
3 голосов
/ 10 мая 2011

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 10 мая 2011

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

1 голос
/ 10 мая 2011

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

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

0 голосов
/ 10 мая 2011

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

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

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

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

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

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

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