Objective c CF相当于[NSNotificationCenter defaultCenter]

Objective c CF相当于[NSNotificationCenter defaultCenter],objective-c,nsnotificationcenter,Objective C,Nsnotificationcenter,我想使用cpp函数作为观察者回调。 在CFNotificationCenterGetDarwinNotify/Distributed/LocalCenter之外,CFNotificationCenterGetLocalCenter似乎最接近[NSNotificationCenter defaultCenter] CFNotificationCenterGetLocalCenter是否等同于[NSNotificationCenter defaultCenter] 编辑:我怀疑是因为 一个答案说,你

我想使用cpp函数作为观察者回调。 在CFNotificationCenterGetDarwinNotify/Distributed/LocalCenter之外,CFNotificationCenterGetLocalCenter似乎最接近[NSNotificationCenter defaultCenter]

CFNotificationCenterGetLocalCenter是否等同于[NSNotificationCenter defaultCenter]

编辑:我怀疑是因为 一个答案说,你不能通过C++类添加观察者
但其中一个说法是,您可以通过CF函数添加C++类中的观测器。

< NSNotificationCenter和CFNotificationCenter是<强> > < /强>无桥(参见:),因此如果您试图接收由AppKIT在特定的NSnFiTeCICCaseCub实例中发布的通知,该实例由代码> +[NSnPosiCICTeCaseDebug中心]返回。使用Objective-C似乎是最安全的,至少在与NSNotificationCenter实例交互时是如此。Objy-C类可以很薄,只需调用C++类,但如果你希望接收的特定通知,则没有ObjuleC。
编辑:根据经验,是的,根据您复制和粘贴的评论,向一方发布通知似乎会导致另一方收到通知。这就是说,我看到,在nor上没有提到这一行为,在so中也没有提到,依赖这样一个未记录的实施细节似乎有风险。

NSNotificationCenter和CFNotificationCenter是免费桥接的(请参见:),因此,如果您试图接收AppKit在由
+[NSNotificationCenter defaultCenter]
返回的特定NSNotificationCenter实例上发布的通知,那么使用Objective-C似乎是最安全的,至少是与该NSNotificationCenter实例交互。Objy-C类可以很薄,只需调用C++类,但如果你希望接收的特定通知,则没有ObjuleC。
编辑:根据经验,是的,根据您复制和粘贴的评论,向一方发布通知似乎会导致另一方收到通知。也就是说,我看到“强”>在NORE上没有提及这个行为的< /强>,也没有提到在SO中提到依赖这种未记录的实现细节似乎是危险的。

< P>使用通知的C++回调的最好方法可能是使用<代码>[NSntIdPcICToCudioAddiServFordNo::Que:UngBux::/Cuff>用一个小的GRACE块到C++代码。

< P>使用一个C++回调通知的最好方法可能是使用<代码> -[NSnToFiTrimeCaseAddoBServFordNo::Obj:Que:UsInBux:]

使用一个小的胶块来处理C++代码。< /P>第二个链接问题的答案有一个注释:“不,CFNotificationCenter不是NSnFIFTICICTASE的免费桥接器。所以,任何一个自定义实例都不能在其他API中使用。但是,如果您使用了一个标准中心(例如CFNoTimeCenter Center Color LoCenter))[NSNotificationCenter defaultCenter]),并向其发布通知,通知将发布到两组侦听器(即,接口不同,但基础系统相同)。”这让我相信我可以在CPP中侦听默认的中心通知,是的,总是有一个选项可以使用中介类或粘合类,但如果系统提供了其他方法,为什么还要使用它呢?我只想按名称接收通知,并附带警告。老实说,如果您试图接收AppKit通知,而不是在AppKit中工作,我diom(即Objective-C)似乎这对你自己来说是不必要的工作,但我知道有些人对编程语言有强烈的感情。未记录的实现细节-这正是我对它的想法,因此发布了这个问题,这样如果有人知道这是一个定义的行为,可以发布一个链接。我很有信心如果这是公开的、有文档记录的行为,我链接到的其中一个页面中可能会提到它,但我也不主张对所有苹果文档都有详尽的最新知识。无论你采取哪种方式都可能是好的。一方面,一个10行的胶水类似乎是一个很小的代价,但另一方面,我无法想象这是一种行为或者这种情况经常发生变化。另一种想法可能是跟踪运行10.5的系统,看看其行为是否相同。如果自10.5以来没有发生变化,则似乎不太可能很快发生变化。第二个链接问题的答案有一条注释:否,CFNotificationCenter不是与NSNotificationCenter的免费桥接。因此,任何一个的自定义实例都无法在其他API中使用。但是,如果您在其中一个API中使用标准中心(例如,CFNotificationCenterGetLocalCenter()或[NSNotificationCenter defaultCenter])并向其发布通知,通知将发布到两组侦听器(即,接口不同,但底层系统相同)"这让我相信我可以在CPP中侦听默认的中心通知,是的,总是有一个选项可以使用中介类或粘合类,但如果系统提供了其他方法,为什么还要使用它呢?我只想按名称接收通知,并附带警告。老实说,如果您试图接收AppKit通知,而不是在AppKit中工作,我diom(即Objective-C)似乎这对你自己来说是不必要的工作,但我知道有些人对编程语言有强烈的感情。未记录的实现细节-这正是我对它的想法,因此发布了这个问题,这样如果有人知道这是一个定义的行为,可以发布一个链接。我很有信心如果这是公开的、有文档记录的行为,我链接到的其中一个页面中会提到它,但我也不声称对所有苹果文档都有详尽的最新知识