Swift4.0---setValuesForKeys()は問題を割り当てることができません

1029 ワード

Swift4.0
ネットワーク要求データ後、jsonデータを解析する、モデルオブジェクトを得るにはSwift 4を用いる.0、setValuesForKeysで辞書データを保存します.コードを保存できません.
class BaseGameModel: NSObject {
    
    
    // MARK:-     
   var tag_name : String = ""
   var icon_url : String = ""
    
    // MARK:-        
    override init() {
        
    }
    
    init(dict : [String : Any]) {
        super.init()
        setValuesForKeys(dict)
    }
    
    override func setValue(_ value: Any?, forUndefinedKey key: String) {
        print(key)
    }
}

タッグがあるのにname、icon_urlプロパティは、override func setValue(_ value: Any?, forUndefinedKey key: String) { print(key) }メソッドを実行し、tag_の値でkeyを印刷します.name、icon_url
の原因となる
swift 3では、コンパイラは@objcを自動的に推定します.言い換えれば、@objcを自動的に追加します.swift 4では、コンパイラは自動的に推定しません.@objcを明示的に追加する必要があります.
解決する
    // MARK:-     
   @objc var tag_name : String = ""
   @objc  var icon_url : String = ""

リファレンス
swift 4.0でシステムメソッドsetValuesForKeys()で問題を割り当てる