Отображение обзора
Во многих случаях Базовые Данные могут быть в состоянии вывести, как преобразовать данные от одной схемы до другого (см. Легкую Миграцию. Если Базовые Данные не могут вывести отображение от одной модели до другого, Вам нужно определение того, как выполнить трансформацию. Эта информация получена в отображающейся модели.
Отображающаяся модель является набором объектов, указывающим трансформации, требующиеся, чтобы перемещать часть хранилища от одной версии Вашей модели другому (например, что один объект переименован, атрибут добавляется к другому и третьему разделению в два). Вы обычно создаете отображающуюся модель в XCode. Очень, поскольку редактор модели управляемого объекта позволяет Вам графически создавать модель, отображающийся образцовый редактор позволяет Вам настраивать отображения между источником и целевыми объектами и свойствами.
Отображение объектов модели
Как модель управляемого объекта, отображающаяся модель является набором объектов. Отображение классов модели параллельно классам модели управляемого объекта — там отображают классы для модели, объекта и свойства (NSMappingModel
, NSEntityMapping
, и NSPropertyMapping
соответственно).
Экземпляр
NSEntityMapping
указывает исходный объект, целевой объект (тип объекта создать для соответствия исходному объекту) и отображающий тип (добавьте, удалите, копия, как, или преобразовывают).Экземпляр
NSPropertyMapping
указывает имя свойства в источнике и в целевом объекте и выражении для создания ценности для целевого свойства.
Модель не содержит экземпляры NSEntityMigrationPolicy
или любой из его подклассов, однако среди другого экземпляра атрибутов NSEntityMapping
может указать имя класса миграционной политики объекта (подкласс NSEntityMigrationPolicy
) использовать для настройки миграции. Для больше о классах миграционной политики объекта, посмотрите Пользовательскую миграционную политику Объекта.
Можно обработать простые изменения миграции свойства путем конфигурирования пользовательского выражения на свойстве, отображающемся непосредственно в отображающемся образцовом редакторе в XCode. Например, Вы можете:
Переместите данные от одного атрибута до другого.
Переименовать
amount
кtotalCost
, введите пользовательское выражение дляtotalCost
свойство, отображающееся как$source.amount
.Примените трансформацию значения на свойство.
Преобразовать
temperature
от Фаренгейта к Цельсия используйте пользовательское выражение($source.temperature - 32.0) / 1.8
.Переместите объекты от одного отношения до другого.
Переименовать
trades
кtransactions
, введите пользовательское выражение для свойства транзакций, отображающегося какFUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:", "TradeToTrade", $source.trades)
. (Это принимает объект, отображающийся, который мигрирует, Торговые экземпляры назван TradeToTrade.)
Существует шесть предопределенных ключей, на которые можно сослаться в пользовательских выражениях. Для доступа к этим ключам в исходном коде Вы используете константы, как объявлено. Для доступа к ним в пользовательских строках выражения в отображающемся образцовом редакторе в XCode следуйте, синтаксические правила, обрисованные в общих чертах в синтаксисе строки формата предиката, ведут и относятся к ним как:
NSMigrationManagerKey
: $manager
NSMigrationSourceObjectKey
: $source
NSMigrationDestinationObjectKey
: $destination
NSMigrationEntityMappingKey
: $entityMapping
NSMigrationPropertyMappingKey
: $propertyMapping
NSMigrationEntityPolicyKey
: $entityPolicy
Создание отображающейся модели в XCode
Из меню File Вы выбираете New File, и в New File область выбирает Design> Mapping Model. В следующей области Вы выбираете исходные и целевые модели. При щелчке по Finish Xcode создает новую модель отображения, содержащую столько отображений по умолчанию, сколько это может вывести из источника и места назначения. Например, учитывая файлы модели, показанные на рисунке 1-1 и рисунке 1-2, XCode создает отображающуюся модель как показано на рисунке 4-1.