我有一个类(称之为classA),它包含一个名为info
(一个模型类,包含大量信息)的属性,而它又包含一个名为name
(一个字符串)的属性。name
当classA中的字符串发生变化时,我希望另一个类(classB)接收KVO通知。
这就是我现在在 B 类上所做的事情:
[classA addObserver: self forKeyPath: @"info.name" options: 0 context: nil];
classA 上的值变化有两种方式name
:直接设置为likeclassA.info.name = ...
和info
设置为like时classA.info = ...
当name
直接更改时,KVO 可以完美运行。但是,当info
属性设置并name
间接更改时,我收到此错误:
Cannot update for observer <classB> for the key path "info.name" from <classA>, most likely because the value for the key "info" has changed without an appropriate KVO notification being sent. Check the KVO-compliance of the classA class.
我应该在 classA 上进行什么更改才能完成这项工作?