使用了 KVC
,如果有访问器方法,则运行时会在访问器方法中调用 will/didChangeValueForKey:
方法;
没用访问器方法,运行时会在 setValue:forKey
方法中调用 will/didChangeValueForKey:
方法。
运行时会重写访问器方法调用 will/didChangeValueForKey:
方法。
因此,直接调用访问器方法改变属性值时,KVO
也能监听到。
显式调用 will/didChangeValueForKey:
方法。