Да, это хороший подход; вероятно, лучший подход в настоящее время.
Тема -awakeFromInsert
не вызывается, потому что ваши пользовательские подклассы не используются во время миграции. Менеджер миграции выполняет все действия по миграции, используя только NSManagedObject, вместо использования каких-либо пользовательских объектов.
Аналогично, вы не должны объявлять его как Theme
(вызов -insertNewObjectForEntityForName: inManagedObjectContext:
действительно возвращает ваниль NSManagedObject
) в этом методе Это просто приведет к путанице во время обслуживания кода.