iOS Developer

swift kvc 构造函数

2016-07-07  本文已影响74人  meng_huang

介绍

使用


class Person: NSObject {

    
    var name: String?
    
    var age: Int = 0
    
    init(dict: [String : NSObject]) {
        
        super.init()
        
        setValuesForKeysWithDictionary(dict)
        
    }
    
    
/*
     override func setValue(value: AnyObject?, forKey key: String) {
        //  千万不要忘记调用super,否则属性赋值失败
        //  不用调用该方法,否则会递归调用
        //super.setValue(value, forKeyPath: key)
        
        super.setValue(value, forKey: key)
        
        
        //    super.setValue(value, forKey: key)
        
         //  1. 判断我们key在类里面是否定义,如果定了 那么直接赋值,否则会调用setValue(value: AnyObject?, forUndefinedKey key: String)
       
        
    }
    
    
    
    //重写方法
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        //不用调用super, 否则会崩溃
    }

*/
}

 
let person = Person(dict: ["name" : "小明", "age": 18])
   
   
print(person.name! + "---" + "\(person.age)")
小明---18
上一篇 下一篇

猜你喜欢

热点阅读