Вывод Objective-C был изменен в Swift 4. Вы должны добавить атрибут @objc
к каждому свойству
class User: NSObject {
@objc var email: String?
@objc var username: String?
}
Однако setValuesForKeys
очень target-c-ish .В Swift есть лучшие (и более легкие) способы без тяжелой среды выполнения ObjC.
И почему оба свойства являются необязательными?Разрешено ли пользователям без имени и адреса электронной почты?
Учтите, что при не опциональных параметрах компилятор выдаст ошибку в время компиляции , если вы собираетесь передать nil
.