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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容