14-Swift中字典轉(zhuǎn)模型

  • 字典轉(zhuǎn)模型(初始化時(shí)傳入字典)
  • 字典轉(zhuǎn)模型(利用KVC轉(zhuǎn)化)

一、 普通的字典轉(zhuǎn)模型:

class Person:NSObject{
    var name:String
    var age:Int

    init(dic:[String:AnyObject]) {
        name = (dic["name"] as? String) ?? ""
        age = (dic["age"] as? Int) ?? 0
    }
}
let dic:[String:AnyObject] = ["name":"yijiang" as AnyObject,"age123":19 as AnyObject]
let p = Person(dic: dic)
p.name  //"yijiang"
p.age   //0

二、利用KVC字典轉(zhuǎn)模型:

class Student:NSObject{
    var name:String = ""
    var age:Int = 0

    //KVC:使用KVC之前,必須保證自身初始化完畢,self調(diào)用父類的init
    //在KVC之前,必須保證當(dāng)前對象里面所有的“非可選”屬性有值
    init(dic:[String:AnyObject]) {
        super.init()
        setValuesForKeys(dic)
    }

    override func setValue(_ value: Any?, forUndefinedKey key: String) {
        print(value,key)
    }
}
let dic1:[String:AnyObject] = ["name":"yijiang" as AnyObject,"age1":18 as AnyObject]
let s = Student(dic: dic1)
s.age   //0
s.name  //yijiang
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容