KVCKVO

--------KVC------------

class Person: NSObject {


    var name = "LuSi"

}


//ViewController中利用KVC键值编码


let person = Person()

//取值

let value = person.value(forKey: "name") as! String

//改值

person.setValue("Amy", forKey: "name")



--------KVO------------

class Dog: NSObject {

    

   dynamic var name = "dog" //被监听属性用dynamic标注

    


}


//ViewController


   //添加观察者

   dog.addObserver(self, forKeyPath: "name", options: .new, context: nil)

   //改变监听属性

   dog.name = "aa"

      

//当视图消失的时候调用deinit方法移除观察者   

    deinit{

    

        dog.removeObserver(self, forKeyPath: "name")

    }

    

//当监听属性被修改时会触发此方法

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

        

        

            print("Changed to:\(change![NSKeyValueChangeKey.newKey]!)")

    

    }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值