Ответ 1
Вы не можете назначать произвольные типы свойствам Core Data, потому что методы доступа создаются динамически во время выполнения. Если вы создаете Objective-C подкласса управляемых объектов в Xcode, то вы увидите правильные типы данных, используемые по основным данным, например
-
NSNumber
для атрибутов Boolean, Integer, Float и Double, -
NSString
для атрибутов String, -
NSSet
для отношений (неупорядоченные) ко многим.
Вы должны выбрать один и тот же тип данных в Swift.
Теоретически, скалярные аксессоры для примитивных типов данных также должны работать, но, похоже, проблема в текущей версии Swift, сравните Как использовать Core Data Integer 64 с Swift Int64? или Ошибка EXC_BAD_ACCESS при попытке изменить свойство Bool.