Как исправить ‘динамическое’ свойство ‘IpfSetId’ также должно быть ‘@objc’?

#swift #realm

#swift #область

Вопрос:

Я написал код несколько месяцев назад для своей модели realm, и он работает хорошо. но теперь я получаю сообщение об ошибке в RealmOptional свойствах, в котором говорится 'dynamic' property 'IpfSetId' must also be '@objc'

Я обновляю, очищаю и перестраиваю модуль RealmSwift, но это мне не помогает

 @objcMembers class InspectionPointFields: Object {
    dynamic var IpfId: Int = 0
    dynamic var IpfGuid: String?
    dynamic var IpfFieldName: String?
    dynamic var IpfFieldType: Int = 0
    dynamic var IpfSetId = RealmOptional<Int>()
    dynamic var IpfComponentCustomInput: String?


    override class func primaryKey() -> String? {
        return "IpfId"
    }
    convenience init(IpfId: Int,IpfGuid: String?,
                     IpfFieldName: String?,IpfFieldType: Int,IpfSetId: Int?, IpfComponentCustomInput: String?) {
        self.init()
        self.IpfId = IpfId
        self.IpfGuid = IpfGuid
        self.IpfFieldName = IpfFieldName
        self.IpfFieldType = IpfFieldType
        self.IpfSetId.value = IpfSetId
        self.IpfComponentCustomInput = IpfComponentCustomInput


    }
}
  

Ответ №1:

Необязательные целые числа достигаются с RealmOptional типом, который вы правильно определили. Хотя примитивы используют постоянные опции. Т. е. замените ваше объявление:-

 dynamic var IpfSetId = RealmOptional<Int>()
  

с

 let IpfSetId = RealmOptional<Int>()