菜鸡学Swift3.0 14.4 类的KVC方法

import UIKit
/*
使用KVC方法条件
1. 必须继承自 NSObject
2. 在构造函数中必须先调用 super.init()
3. 调用 setValuesForKeys()
4. 如果字典中某一个Key没有对应的属性,则需要重写 setValue forUndefinedKey方法 override func setValue(_ value: Any?, forUndefinedKey key: String) {}
 */
// 必须继承自 NSObject
class Person: NSObject {

    var name: String = ""
    var age: Int = 0

    init( dict: [String: Any]) {
        // 在构造函数中必须先调用 super.init()
        super.init()
        // 调用 setValuesForKeys()
        setValuesForKeys(dict)
    }
    // 如果字典中某一个Key没有对应的属性,则需要重写 setValue forUndefinedKey方法 override func setValue(_ value: Any?, forUndefinedKey key: String) {}
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}

let p = Person(dict: ["name": "jack", "age": 20, "sex": "男"])
print (p.name , p.age)

你可能感兴趣的:(菜鸡学Swift3.0 14.4 类的KVC方法)