美文网首页
总结KVC、KVO、Delegate、NotificationC

总结KVC、KVO、Delegate、NotificationC

作者: 落魄的iOS程序员 | 来源:发表于2021-03-20 22:00 被阅读0次

    1、KVO(Key-value-Observing):观察者模式,键值观察机制,提供观察某一对象属性的方法,一对多。

    第一步:添加观察者

    addObserver: 

    forKeyPath: 

    options:

      context:nil]

    这里需要穿入四个参数,第一个就是当前观察者,第二个就是被观察者的属性,第三个是个枚举,NSKeyValueObservingOptionNew回收到最新的值也就是更新后,NSKeyValueObservingOptionOld回收到更新前的值,NSKeyValueObservingOptionInitial新旧值都没收到,NSKeyValueObservingOptionPrior值改变会调用两次,第四个参数是可以传递参数。

    第二步:实现观察方法,在这里面处理想要处理的事情

    observeValueForKeyPath:

    ofObject:

    change:

    context:

    第三步:移除removeObserver: forKeyPath:

    2、KVC(Key-Value-Coding),键值编码,一个对象在调用setValue的时候会分四步:检查是否存在相应key的set方法,存在就调用set方法;不存在就查找_key的成员变量是否存在,存在就赋值;如果_key没找到就查找相同名称的key,找到就赋值;如果没有就调用ValueForUndefineKey和setValue:forUndefineKey。

    3、Delegate,代理只能一对一,实现主要有定义,委托,实现,调用。

    4、Notification,通知中心,通常发送者和接受者是间接的多对多关系,消息的发送者只会告诉接收者将要发送消息或者已经发消息,相当于是单向的(接收者不能反过来影响发送者行为),完成通知需要四步:

    第一:注册一个通知addObserver: selector: name: object:

    第二:发送通知postNotificationName: object: userInfo:

    第三:实现selector方法,完成想要做的是

    第四:移除removeObserver: name: object:

    相关文章

      网友评论

          本文标题:总结KVC、KVO、Delegate、NotificationC

          本文链接:https://www.haomeiwen.com/subject/qsfgcltx.html