2013-10-25 3 views
3

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

Я создаю объект пользователя в версии модели 1, у пользователя есть свойство nameA. В версии модели 2 я переименовал имя пользователя A в имя B, я установил идентификатор переименования имениB в 'nameA'. Этот шаг успешный, предыдущее значение nameA можно найти в nameB. Затем я создаю модель версии 3, чтобы добавить еще один объект под названием «Дом», и я нашел в версии 3 имя пользователя «Б» все еще имеет свой идентификатор переименования, присвоенный «nameA»

Я думаю, что в версии модели 3 имя пользователя B не должно иметь переименование id, потому что модель версии 3 основана на версии 2, а в версии 3 я ничего не менял в пользовательском объекте

Так что я должен удалить идентификатор переименования имени пользователя B? или просто оставить его там? Кто-нибудь знает как?

ответ

-2

Если вы используете легкую миграцию, вы не должны редактировать схему миграции вообще. Вся легкая миграция заключается в том, что вам не нужно заботиться о переименовании идентификаторов и других подобных вещей - это автоматически!

Вот ваш рабочий процесс:

  • создать новую версию
  • активировать его
  • сделать вашу модель изменения
  • для последующих версий, повторите выше

Вот и все. Изменения, которые вы описываете (все они легко совместимы) должны работать.

+2

Я думаю, вы ошибаетесь. В соответствии с руководством по программированию версий и сопоставлению переноса данных данных, облегченной миграции главы, мы должны установить идентификатор переименования при переименовании свойства. И мой вопрос еще на один шаг. Любой может помочь ??? –

+0

Возможно, вам следует объединить свои вопросы (в том числе [этот] (http://stackoverflow.com/q/19592423/427083)) в один и прояснить, чего вы на самом деле хотите достичь и что не работает. – Mundi

+0

Привет, Мунди! Я просто хочу знать, какое значение должен иметь идентификатор переименования в 3-й версии модели данных. В документе Apple не говорится об этой ситуации, я боюсь, что в будущем все может пойти не так. Кроме того, я заметил это предложение в документе Apple: «Идентификатор переименования создает« каноническое имя », поэтому вы должны установить идентификатор переименования на имя свойства в исходной модели (если только это свойство уже не имеет идентификатора переименования)». Это меня больше смущает, это значит, что если я изменю имяB на nameC в модели данных версии 3, я не должен устанавливать идентификатор переименования имени nameC? –

0

Вы должны оставить его там. Возможно, ваши пользователи не обновили до версии 2 вашей основной схемы данных. Когда эти пользователи будут обновляться с v1 до v3, им нужно будет знать, как перенести с nameA на nameB

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