【发布时间】:2014-11-18 08:45:04
【问题描述】:
我有一个对象 A,它有一个属性 B。B 是一个对象,它有一个 int 类型的属性 C。然后在另一个对象中,我使用 KVO 用 keypath B.C 观察对象 A。如果我改变 C 的值,那么我可以很好地收到通知。但是如果我将另一个对象分配给 B,或者将 B 分配给一个新对象,我也会收到通知吗?
【问题讨论】:
标签: objective-c key-value-observing
我有一个对象 A,它有一个属性 B。B 是一个对象,它有一个 int 类型的属性 C。然后在另一个对象中,我使用 KVO 用 keypath B.C 观察对象 A。如果我改变 C 的值,那么我可以很好地收到通知。但是如果我将另一个对象分配给 B,或者将 B 分配给一个新对象,我也会收到通知吗?
【问题讨论】:
标签: objective-c key-value-observing
这一切都归结为您将另一个对象分配或分配给 B 的意思。据我了解,您有一个名为 B 的变量,它引用您正在观察的对象。 KVO 与对象一起工作,而不是变量,因此如果将变量 B 指向另一个对象,KVO 将保持在原地并且不会自动扩展到另一个对象。希望这会有所帮助。
【讨论】: