Каков общий способ вставки основных данных в sqlite в Core Data? - PullRequest
0 голосов
/ 12 января 2011

Я учусь с использованием Core Data.После того, как я создаю сущность в XCode, я хочу вставить некоторые данные, которые являются основными данными, каков общий способ или я должен сказать наилучшую практику для достижения этой цели?

Я немного погуглил и выяснил, гденастоящий файл sqlite, созданный с помощью xcode.Это выглядит как /Users/<Username>/Library/Application Support/iPhone Simulator/User/Application/<Application GUID>/Documents/<database name.sqlite> Теперь мне интересно, правильно ли я редактирую файл sqlite (просто для вставки данных)?

Ответы [ 2 ]

1 голос
/ 12 января 2011

Единственный разумный способ заполнить набор данных в хранилище Core Data sqlite - это программно.

Для приложений iPhone люди обычно пишут небольшие приложения OS X для создания файлов sqlite, которые затем можно добавить в комплект приложений.

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

1 голос
/ 12 января 2011

Если вы имеете в виду предустановленную настройку базы данных для всех новых экземпляров базы данных, есть несколько способов сделать это.

  1. Программно вы можете вставить сущности в managedObjectContext с помощью набора кода. Это будет немного болезненно для всего, кроме довольно тривиального набора данных, но преимущество в том, что вы можете использовать весь NSPersistantDocument практически бесплатно.

  2. Используйте свое приложение для создания набора данных, а затем сохраните его в комплекте приложений в виде копии только для чтения, которую можно клонировать по мере необходимости, когда пользователь создает новую базу данных. Немного сложнее, если вы используете архитектуру NSPersistantDocument.

  3. Делай, что ты сказал в первую очередь. Используйте клиент sqlite3 для ввода данных в базу данных, чтобы создать копию только для чтения, например 2, но есть риск, что в структуру базы данных будет добавлено больше информации, которую CoreData вставит, о которой вы не знаете, так что вы могли бы немного поработать, чтобы обнаружите, что CoreData не может прочитать базу данных после того, как вы связались с ней в sqlite3 Я не пробовал, но это может сработать.

ИМХО 1 - лучшая практика, поскольку вы получаете кучу свободного поведения от NSPersistantDocument

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