如何查看可可中的对象正在观察什么
我知道有一种方法可以使用 ObservationInfo 查看对象上正在观察的属性,但是有没有办法查看对象设置为观察的内容?
[otherObject addObserver:zombie forKeyPath:@"brains" context:apocalypse]
调用 [otherObject ObservationInfo] 显示僵尸正在观察 @"brains" 键路径,但我想调用 [zombie ObserverFor] 或其他东西,看看它被设置为观察者......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不认为你能做到这一点。 KVO 的实现将指向观察对象的指针存储在被观察对象中(实际上,它是被观察对象的动态创建的子类)。因此观察对象不会维护对其正在观察的对象的任何引用。关于 KVO 的 Apple 文档 这里 说得更多一些。 这个thread 详细介绍了 KVO 和 isa-swizzling 的实际实现。
I don't think you can do this. The implementation of KVO stores pointers to the observing object in the observed object (sort of, actually, it's a dynamically created subclass of the observed object). So the observing object does not maintain any reference to the objects it is observing. The Apple documentation on KVO here says a little bit more. This thread says a little bit more about the actual implementation of KVO and isa-swizzling.