2010-07-27 4 views
7

Я видел учебники в книгах и на веб-сайтах, которые предлагают файлы .sqlite для загрузки. Файлы sqlite используются для основных данных.Создание файла .sqlite из хранилища Core Data?

Как я получаю .sqlite файла FROM приложение или основное хранилище данных на TO мой рабочий стол?

+1

Если вы запрашиваете метод создания хранилищ SQLite CoreData, будьте осторожны с ответами, предлагающими инструменты SQLite. Вам нужно будет написать или адаптировать приложение CoreData для импорта данных из другого формата (например, плоский файл, CSV и т. Д.), Возможно, используя «NSScanner». – Justin

ответ

14

Если вы собираетесь создать предварительно заполненный sqlite-файл, который будет использоваться с Core Data, то вы должны должен создать его с помощью Core Data. Тривиально создать базовое настольное приложение для ввода данных и использовать его для создания файла, а затем встроить его в устройство iOS.

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

+0

Пожалуйста, объясните. – Moshe

+6

Он означает, что файлы sqlite, которые вы загружаете, сами были созданы Core Data. Чтобы создать свой собственный, вы создаете свой стек основных данных и затем импортируете данные на него. Теоретически вы можете создать sqlite-файл, который Core Data мог бы использовать с нуля, используя только команды SQL, на самом деле это сложный и хрупкий способ получить файл данных. Core Data SQL API является частным и изменчивым. Это практически невозможно дублировать. Всегда проще и чище генерировать файл с основными данными, которые вы будете использовать для чтения файла. – TechZen

+0

Итак, я генерирую модели и классы Core Data в XCode, а затем как-то экспортирую из него файл sqlite? Как так? – Moshe

0

Существует программа командной строки, загружаемая с sqlite.org (в стандартной загрузке), которая может быть использована для создания пустой базы данных со схемой. Обычно файл базы данных совместим в разных операционных системах и устройствах.

4

Если вы специально пытаетесь создать хранилище данных ядра, можно использовать этот метод:

NSPersistentStoreCoordinator 
    addPersistentStoreWithType:(NSString*)storeType 
    configuration:(NSString*)configuration 
    URL:(NSString*)storeURL 
    options:(NSDictionary*)options 
    error:(NSError**)error 

Вы должны быть уже сопоставляетесь NSManagedObjectModel с персистирующим объектом координатора магазина. Если хранилище в storeURL не существует, оно будет создано; иначе он будет открыт.

Смежные вопросы