Как заставить базовые данные создавать базу данных Sqlite из модели * до * Сохраняются ли какие-либо данные в приложении? - PullRequest
3 голосов
/ 09 августа 2011

Есть ли способ заставить Core Data создать базовую базу данных SQLite на основе вашей модели, прежде чем вы на самом деле создадите какие-либо объекты, которые необходимо сохранить?

Моя цель - определить мою модель в конструкторесоздать базу данных SQLite и, таким образом, иметь возможность импортировать в нее данные и / или вставлять / обновлять данные непосредственно с помощью такого инструмента, как браузер базы данных SQLite.

1 Ответ

2 голосов
/ 09 августа 2011

Когда ваши managedObjectContext и persistentStore готовы, просто сделайте

[managedObjectContext save:&error];

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

Однако вы не можете добавить сущности в базу данных SQLite, поддерживающую вашу модель CoreData без использования CoreData .Способ, которым CoreData переводит иерархию объектов в SQLite, является деталью реализации, и очень трудно создать файл SQLite, который может корректно и последовательно интерпретироваться CoreData без использования самого CoreData.

Если вы хотите обработатьФайл SQLite как файл SQlite, используйте SQLite напрямую или используйте тонкую оболочку вокруг него, например FMDB .

...