我有一个奇怪的问题。
我的类声明了一个属性,它只保留一个指向 C++ 对象的指针:
@property (assign) CPPObject *representedObject;
然后,在init
那个 Obj-C 类中,我将类本身注册为观察者,以便在有人为我的属性分配某些东西时得到通知(是的,我可以编写一个自定义设置器……anywho!)。
[self addObserver:self
forKeyPath:@"representedObject"
options:NSKeyValueObservingOptionNew
context:nil];
注册为观察者后转储observationInfo
看起来没问题 - 应该已经注册了。
但是我的observeValueForKeyPath:ofObject:change:context:
方法永远不会被调用。
浏览相关的 StackOverflow 主题并没有让我更接近解决这个问题。
该属性是通过 settingobject.representedObject
等正确设置的。
任何线索这里可能有什么可疑之处..?在方法
中注册的坏主意..?self
init
编辑#1
当使用手动设置器而不是合成的设置器时,将调用该设置器。