Могу ли я позволить Core Data использовать уже созданную базу данных SQL - PullRequest
0 голосов
/ 30 января 2011

У меня есть база данных мечетей, которая насчитывает 1000 предметов ..

Я хочу использовать подход Core Data при доступе к моей базе данных ..

Я уже попробовал подход SQLite для создания базы данных где у меня есть текстовый файл Pad со всеми данными, разделенными вкладками а затем импортировать данные из TXT-файла в SQL-файл ..

Теперь все отлично работает.

Я хочу знать, как я могу импортировать данные из моего файла SQL во вновь созданный Core Data Project

Должен ли я добавить файл SQL к ресурсам? Скопируйте это или нет ??

Я посмотрел пример CoreDataBooks, но мне кажется, что я что-то упустил

Я хочу знать точный способ добавления файла SQL к ресурсам проекта Core Data.

Ответы [ 2 ]

4 голосов
/ 30 января 2011

Вы не можете.

Следует учитывать тот факт, что Core Data использует SQLite в качестве формата для сохранения файла в качестве детали реализации, а не для непосредственного использования , если только вам действительно не нужно это делать . Например, вы не можете ожидать, что Core Data будет работать нормально, если вы также будете напрямую писать в файл SQLite.

Вместо этого прочтите документацию Core Data и импортируйте данные непосредственно из текстового файла, разделенного табуляцией, в контекст Core Data и дайте Core Data сохранить его в файл. Да, он использует SQLite негласно, но вам лучше забыть этот факт.

0 голосов
/ 30 января 2011

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

Например, вы можете включить предварительно заполненный файл SQLite (с его собственным, не CoreData)схема и т. д.) как ресурс в проекте.Затем, когда ваше приложение запускается, если оно видит, что хранилище CoreData пусто, вы можете напрямую использовать API-интерфейс SQLite, чтобы открыть / запросить базу данных начальной загрузки и преобразовать результаты в операции, которые генерируют требуемый граф объектов в CoreData.В следующий раз, когда приложение запустится, граф объекта CoreData будет заполнен, и вам не придется делать это снова.

Вывод заключается в том, что хотя это и не «бесплатно», это не «невозможно»«.Многие, многие приложения включают встроенные репозитории CoreData, которые содержат данные.Эти данные должны были быть откуда-то загружены, верно?

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