美文网首页
KVO监听容器类(数组,字典等)属性的两种方法

KVO监听容器类(数组,字典等)属性的两种方法

作者: 落寞King | 来源:发表于2019-01-09 11:23 被阅读0次

kvo大家都会用.原理百度一大堆.这篇文章主要介绍监听容器类属性变化的方法.
代码截图


WX20190109-111417@2x.png

代码很详细
网上大多数是第一种方法,需要把数组包装一层.然后添加或者删除时需要做特殊处理.
[[self.person mutableArrayValueForKeyPath:tempArrayTwoType] addObject:XXX];
[[self.person mutableArrayValueForKeyPath:tempArrayTwoType] removeObject:XXX];

第二种方法是取消自动通知,采用手动通知的方式.
点击按钮 打印结果 第一次和第二次截图


WX20190109-111458@2x.png WX20190109-111512@2x.png

大家会发现观察者代理方法里打印的结果不一致,原因是因为修改类型不一致. kind值就是这个类型.


WX20190109-111929@2x.png

还有其他却别是.手动通知更加灵活.可以在需要的时机进行通知.不用新建对象将数组包装一层.

相关文章

网友评论

      本文标题:KVO监听容器类(数组,字典等)属性的两种方法

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