Swift4.0---setValuesForKeys()は問題を割り当てることができません
1029 ワード
Swift4.0
ネットワーク要求データ後、jsonデータを解析する、モデルオブジェクトを得るにはSwift 4を用いる.0、setValuesForKeysで辞書データを保存します.コードを保存できません.
タッグがあるのにname、icon_urlプロパティは、
の原因となる
swift 3では、コンパイラは@objcを自動的に推定します.言い換えれば、@objcを自動的に追加します.swift 4では、コンパイラは自動的に推定しません.@objcを明示的に追加する必要があります.
解決する
リファレンス
swift 4.0でシステムメソッドsetValuesForKeys()で問題を割り当てる
ネットワーク要求データ後、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()で問題を割り当てる