请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

无setter方法时候 使用KVC,为什么也会促发KVO?

如果一个类中只有成员变量,没有写setter和getter方法,为什么在setvalue:forkey的时候也会触发KVO,KVO不是不是在setter方法里面的么,按照KVC的setvalue:forkey的实现流程图,在没有Setter Method is exit的时候,会去Instance var is exit 然后直接Invoke,这里没经过setter方法,是怎么触发KVO的,求解答

正在回答 回答被采纳积分+3

1回答

于海 2019-02-01 16:59:10

系统为我们自动生成的setter方法里是会调用setValue:forKey:方法的,KVC是键值编码,它的含义是通过setValue:forKey去赋值。KVO是键值观察,具体含义可以看课程kvo的讲解,kvo的观察是基于setValue:forKey的,当我们监听一个对象的key时,系统会通过isa_swizzle方式创建子类,覆写setter方法

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信