iOS面试题2

4.iOS用什么方式实现对一个对象的KVO?
  1. 利用RuntimeAPI动态生成一个新子类,并且让instance对象的isa指向这个全新的子类
  2. 当修改instance对象的属性时,会调用新子类的set方法,set方法内部实现的伪代码
	willChangeValueForKey:
    父类原来的setter
    didChangeValueForKey:
    内部会触发监听器(Oberser)的监听方法( observeValueForKeyPath:ofObject:change:context:)
5.如何手动触发KVO?

可以通过手动调用以下方法

    willChangeValueForKey:
    didChangeValueForKey:
6.直接修改成员变量会触发KVO吗?

不会,因为没有走set方法

7.通过KVC修改属性会触发KVO吗?

会,通过KVC修改属性的时候,会调用到 willChangeValueForKey:
didChangeValueForKey:两个方法,从而触发KVO

8.KVC的赋值和取值过程是怎样的?

赋值过程:
在这里插入图片描述
取值过程
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值