Пользовательская политика в моем xcmappingmodel не будет выполнена - PullRequest
3 голосов
/ 22 июня 2011

Я пытаюсь создать модель сопоставления для моего приложения, имеющего некоторый пользовательский код. Таким образом, я создал модель xcmapping, подкласс NSEntityMigrationPolicy и реализовал

createDestinationInstancesForSourceInstance

метод. Далее я ввел имя класса в поле Custom Policy в моей модели отображения. К сожалению, мой код никогда не будет вызываться (пробовал точки останова и логи). Мой магазин создан со следующими параметрами:

NSMigratePersistentStoresAutomaticallyOption: YES
NSInferMappingModelAutomaticallyOption: YES

Я использую XCode 4.0.2 (и тоже тестировал с XCode 4.2). Все остальные мои «легкие» миграции проходят гладко. Что мне нужно сделать, чтобы запустить мою пользовательскую миграцию?

Ответы [ 2 ]

2 голосов
/ 31 декабря 2013

NSInferMappingModelAutomaticsOption должен иметь значение NO.

Кроме того, если модель не отличается, вы можете установить модификатор хэша версии в Инспекторе сущностей.Тогда Core Data распознает модель как отличающуюся:

https://developer.apple.com/library/mac/documentation/cocoa/conceptual/CoreDataVersioning/Articles/vmUnderstandingVersions.html

2 голосов
/ 25 июня 2011

Чем отличаются версии вашей модели?Базовые данные должны признать, что хранилище несовместимо с моделью (представленной в виде объекта NSManagedObjectModel).Это делается путем создания хеш-значений свойств каждой сущности и хеширования этих значений для представления хеш-значения для каждой сущности.Если эти значения не меняются, модели нельзя дифференцировать.

Для того, чтобы помочь вам в изменении модели данных, требуется дополнительная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...