ios 通过kvc修改属性会触发kvo_OC观察者模式之KVO的使用与思考

本文详细探讨了Objective-C中的KVO(Key-Value Observing)技术,包括其作用、使用方法、实现原理,以及与KVC、代理、通知的区别。通过示例代码介绍了自动和手动监听属性变化的实现,并分析了KVO的潜在问题和注意事项,强调了在多线程环境下使用KVO的注意事项。
摘要由CSDN通过智能技术生成
ffe4849a9016614b63f27e418514ce9a.png

转载本文需注明出处:微信公众号EAWorld,违者必究。

引言:

无论用哪种语言进行软件开发,我们都会接触到设计模式,个人认为设计模式存在的意义在于:在某些需求下,采用适合的设计模式,使代码结构合理,从而提高代码的可读性、可扩展性、可移植性,此文将要讨论的是OC开发中的一种常用模式之一:观察者模式之KVO。

KVO俗称键值观察(key-value observe),键值观察是当被观察的对象属性发生改变时,会通知到观察对象的一种机制。

目录:

1、KVO的作用

2、KVO的使用方法

3、KVO的实现原理

4、KVO与KVC、代理、通知的区别

5、KVO实现过程中的注意事项

无论用哪种语言进行软件开发,我们都会接触到设计模式,个人认为设计模式存在的意义在于:在某些需求下,采用适合的设计模式,使代码结构合理,从而提高代码的可读性、可扩展性、可移植性,此文将要讨论的是iOS开发中的一种常用模式之一:观察者模式之KVO。我们先看下官方文档给的KVO介绍:

db65f049eb77650740e15aa50ffd8a97.png

翻译过来就是:KVO是运用isa混写技术实现自动观察键值的。isa指针是指向对象的类,本质上是指向类中的方法实现。当一个对象注册观察者时,这个对象的isa指针被修改指向一个中间类。永远不要用isa来判断一个类的继承关系,而是应该用class方法来判断类的实例。

KVO俗称键值观察(key-value observe),键值观察是当被观察的对象属性发生改变时,会通知到观察对象的一种机制。

1.KVO的作用

1、监听带有状态的基础控件,如开关、按钮等;

2、监听字符串的改变,当监听的字符串改变时,来做一些自定义的操作;

3、当数据模型的数据发生改变时,视图组件能动态的更新,及时显示数据模型更新后的数据,比如tableview中数据发生变化进行刷新列表操作,监听 scrollView的contentOffset属性监听页面的滑动.

2.KVO的使用方法

KVO的使用可分为自动监听和手动监听。

1.自动监听

1.1自动监听操作步骤:

(1)添加观察者

(2)在观察者中添加观察键值方法

(3)在dealloc中移除监听

1.2示例代码:

创建两个类ModelA和ModelB,两个类中都添加属性“des”,在控制器中,将B添加为A的观察者。代码如下:

ModelA中代码&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值