采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
比如: -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context -(void)didChangeValueForKey:
这俩方法。
没有太明白您的意思,尝试作答下:
person的观察对象(observer)是其自身,当系统监听到对象属性值的变化之后会调用observeValueForKeyPath ofObject context函数。需要自己在observer里实现它。当然observer也可以设置成其它对象。
你可以看看系统提供的@interface NSObject(NSKeyValueObserverNotification)API说明,我觉得监听实例的属性,实例对象来调用也很nice。其实你也可以试试用类对象来调用,与其对应的是类属性,我记得类属性在课程里有说明,注意类属性需要实现其相对应set、get方法。只要您明白了类的本质,这些应该都不是问题。祝您好运。
#手动掩面表情# 这个是我自己学着学着搞糊涂了,忽然的迷糊。。。m文件里是对方法的实现,调用方法是run这个方法。 我得重新复习下前面的内容。。。
还有,这里是手动调用KVO,这样可以在Setter方法里,定制我们需要的功能。如果不手动的话,是不需要
willChangeValueForKey和didChangeValueForKey方法的。
登录后可查看更多问答,登录/注册
高薪职位,复杂业务需求,高性能APP,Runtime技术不可不学。
766 5
886 4
790 4
903 4
666 4