【问题标题】:what is the CFNotificationCenter callback function observer?什么是CFNotificationCenter回调函数观察者?
【发布时间】:2012-08-04 01:00:48
【问题描述】:

我是 CFNotificationCenter 的新手。我正在阅读 developer.apple 上的文档,它说在 CallbackFunction 中,观察者是“标识观察者的除 NULL 之外的任意值”。观察者可以是一个对象,以便我可以在回调函数中访问它的方法吗? 这些是文档中显示的参数。

   void MyCallBack (
       CFNotificationCenterRef center,
       void *observer,
       CFStringRef name,
       const void *object,
       CFDictionaryRef userInfo
    );

另一个问题。为什么添加观察者时允许观察者为nul??

void CFNotificationCenterAddObserver (
   CFNotificationCenterRef center,
   const void *observer,
   CFNotificationCallback callBack,
   CFStringRef name,
   const void *object,
   CFNotificationSuspensionBehavior suspensionBehavior
);

“观察者。在 OS X v10.3 及更高版本中,此参数可能为 NULL。”

【问题讨论】:

    标签: ios c macos core-foundation


    【解决方案1】:

    observer 参数是您传递给CFNotificationCenterAddObserver 的任意指针,它与您的回调指针一起存储。当通知中心调用您的回调时,它会将observer 指针作为参数传递给回调。

    就是这样。通知中心不会取消引用observer 指针,也不会尝试保留它。如果需要,这是您将额外信息传递给回调的一种方式。如果你想用它来引用一个 Objective-C 对象,你可以。您应该确保在观察者注册时不会释放对象。

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多