2013-05-02 2 views
2

Я использую Core Data в своем приложении и хотел бы экспортировать только некоторые данные и импортировать их на другое устройство.Основные данные: переместите объект из одного постоянного хранилища в другой

Чтобы избежать проблем миграции, я хотел бы сделать следующее:

Экспорт:

  • создать второй export.sqlite-файл с одной и той же модели базы данных, но пустой
  • оных что файл с addPersistentStoreWithType
  • копии некоторых ManagedObjects к этому .sqlite
  • удалить добавленный постоянное хранилище

Импорт: - скопировать export.sqlite-файл в приложение - добавить, что .sqlite-файл с addPersistentStoreWithType - копировать данные через - удалить добавил persistentStore

, но как достичь этого? то есть как я могу сказать, что мой управляемый объект скопировал себя в другой магазин?

+0

Вы достигли этого? У меня также есть аналогичная проблема http://stackoverflow.com/questions/33694048/coredatamigrate-data-from-bundled-db вы можете мне помочь? – anoop4real

ответ

2

Как я могу передать свой управляемый объект, чтобы он копировал себя в другой магазин?

Вы не можете, не в любом случае. Вы должны сделать что-то вроде:

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

Отношения должны выполняться отдельно, поскольку все объекты в отношениях должны существовать, прежде чем вы сможете создать отношения.

+0

и как я могу определить управляемый объект, в котором сохраняется и сохраняется постоянное хранилище? – swalkner

+1

Когда я сделал что-то вроде этого, я использовал два совершенно разных стека Core Data - ту же модель, но другой упорный координатор хранилища и контекст управляемых объектов. Если вы хотите сделать это с помощью одного стека, рассмотрите метод 'assignObject: toPersistentStore:' 'NSManagedObjectContext'. –

+0

большое спасибо за вашу помощь, кажется, я туда попал ... теперь мне нужно только получить лучший способ сделать глубокую копию ... вы рекомендуете делать это вручную или есть автоматическое/динамическое решение. пока не нашел рабочий ... – swalkner

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