import UIKit
class Person : NSObject {
@objc var age : Int = 0
@objc var name : String?
//自定义构造函数,参数传入字典 ---> 字典的value本来就是可选类型的
init(dict : [String : AnyObject]) {
//在调用 setValuesForKeys 方法之前,需要先用 super.init() 创建这个类,才能调用这个类的方法
super.init()
//本类的方法调用的时候,self可以省略
setValuesForKeys(dict)
}
override func setValue(_ value: Any?, forUndefinedKey key: String) {
}
}
//若字典中,多一个height属性,只要不用kvc就不会蹦,为了防止蹦,需要加上 forUndefinedKey 方法。
let p2 = Person(dict: ["name" : "why" as AnyObject, "age" : 18 as AnyObject, "height":1.88 as AnyObject])
if let name = p2.name {
print(name)
}
print(p2.age)