什么是CFNotificationCentercallback函数观察者?
我是CFNotificationCenter的新手。 我正在阅读developer.apple上的文档,它说在CallbackFunction中,观察者是“非NULL的任意值来标识观察者”。 观察者是否可以成为一个对象,以便我可以在callback函数中访问它的方法? 这些是文档中显示的参数。
void MyCallBack ( CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo );
另一个问题。 为什么添加观察者时允许观察者为零?
void CFNotificationCenterAddObserver ( CFNotificationCenterRef center, const void *observer, CFNotificationCallback callBack, CFStringRef name, const void *object, CFNotificationSuspensionBehavior suspensionBehavior );
“观察者,在OS X v10.3及更高版本中,这个参数可能是NULL。”
observer
参数是传递给CFNotificationCenterAddObserver
一个任意指针,与您的callback指针一起存储。 当通知中心调用您的callback函数时,会将observer
指针作为parameter passing给callback函数。
而已。 通知中心不取消引用observer
指针,或尝试保留它。 如果您需要的话,您可以通过这种方式将额外的信息传递给callback。 如果你想用它来引用一个Objective-C对象,你可以。 您应该确保在观察者注册时不会释放对象。