Ну, вы как-то не заметили фактический заголовок, когда назвали этот вопрос.Добавление ограничений действительно тривиально.Тем не менее, ваше другое требование, удаление существующих дубликатов, на самом деле тяжелее.Для этого вам нужно выполнить Heavyweight Migration :)
Я потратил несколько минут в поисках хорошего учебника по Heavyweight Migration, но до сих пор нашел только посты в блогах, в которых упоминание о нем попутночего следует избегать, потому что это трудно.Я сделал тяжелые миграции и не согласен с тем, что это сложно.Это на самом деле довольно просто.
Для начала откройте свой проект в XCode и создайте новую версию модели данных, клонируя текущую модель данных, а затем добавляя свои ограничения.Этот шаг такой же, как если бы вы делали облегченную миграцию.Затем щелкните в меню: Файл > Новый , затем прокрутите вниз до Базовые данные и выберите Модель отображения .Это, конечно, NSMappingModel
, упомянутый в том документе Apple, на который я ссылался.При включении в цель вашего приложения он добавит файл .cdm
в Ресурсы вашего приложения.Будет также написать код - подкласс NSMigrationPolicy
.Это будет обратный вызов или что-то, что вы ищете.Дайте нам знать, если вам нужна помощь с этим.