swift中累的构造函数

2018-04-27  本文已影响7人  鹏飞说

类的构造函数

class Person {
    var name : String = ""
    var age : Int = 0
    init(dict:[String : Any]) {
        if let name = dict["name"] as? String {
            self.name = name;
        }  
        if let age = dict["age"] as? Int {
            self.age = age;
        }
    }
}
let p1 = Person(dict: ["name":"why","age":18])

使用KVC调用构造函数

需要注意事项
1.必须继承自NSObject
2.必须在构造函数中,先调用super.init()
3.调用setValueForKeys

class Person : NSObject {
    var name : String = ""
    var age : Int = 0    
    init(dict:[String : Any]) {
        super.init()
        setValuesForKeys(dict);
    }
    override func setValue(_ value: Any?, forKey key: String) {}
}

let p1 = Person(dict: ["name":"why","age":18,"phoneNum":"+86 100"])
print(p1.age)
上一篇 下一篇

猜你喜欢

热点阅读