Управление версиями Core Data и миграция с помощью настраиваемой политики

Я нашел очень ограниченную документацию и нигде не могу решить мою проблему.

Мне нужно добавить новый объект (связанный с существующим). Также добавьте и переименуйте некоторые атрибуты существующей сущности.

Облегченный пример:

Старая модель имеет одну сущность Элемент с одним атрибутом именем .

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

Но я также хочу добавить новую сущность List с атрибутом title . И добавить ко многим отношения. Список может быть пустым или содержать много элементов. Элемент должен ссылаться только на один список.

Поэтому я не понимаю, что мне нужно делать и в каком порядке.

  1. Включите миграцию с отключенной функцией облегченной миграции ( NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool: YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool: NO], NSInferMappingModelAutomaticallyOption, nil]; ).

  2. Создайте новую версию модели. Там я вношу изменения, которые хочу.

  3. Создайте новую модель отображения. Источник - старая модель, цель - новая модель. В ItemToItem я установил title на $ source.name .

Кроме того, Xcode все еще дает сбой при работе с моделью сопоставления. Я не знаю, что делать дальше. . Я думаю, мне нужно создать один экземпляр List в контексте и сделать все элементы, ссылающиеся на него, из-за политики отношений. И я считаю, что для этого я должен использовать пользовательский NSEntityMigrationPolicy . Любая помощь в решении этой задачи?

5
задан user500 11 August 2011 в 13:53
поделиться