objective-c – NSNotificationCenter:观察员列表?

objective-c – NSNotificationCenter:观察员列表?,第1张

概述是否可以获得给定通知名称的观察者列表(对象和选择器)? (NSNotificationCenter) 我不认为从NSNotificationCenter获取给定通知名称的观察员列表的方式(官方)。但是,您可以创建NSNotificationCenter的子类,然后覆盖以下方法: > defaultCenter > – addObserver:selector:name:object > – add 是否可以获得给定通知名称的观察者列表(对象和选择器)? (NSNotificationCenter)解决方法 我不认为从NSNotificationCenter获取给定通知名称的观察员列表的方式(官方)。但是,您可以创建NSNotificationCenter的子类,然后覆盖以下方法: @H_419_11@

@H_419_11@> defaultCenter
> – addobserver:selector:name:object
> – addobserverForname:object:queue:usingBlock:
> – removeObserver:
> – removeObserver:name:object

@H_419_11@在实例方法的重写实现中,您将使用字典跟踪给定通知名称的观察者。在每个被覆盖的实例方法中,最后可以调用NSNotificationCenter的各自的超级方法。此外,您将提供一种方法来检索您自己的给定名称的观察者列表,例如:

@H_419_11@

- (ID)observerForNotificationname:(Nsstring *)name
@H_419_11@然而,这种方法有两个问题:首先,NSMutableDictionary将保留所有观察者在一个天真的实现中,这可能不是NSNotificationCenter实现的行为。其次,您必须通过[NSNotificationCenter defaultCenter](或任何其他NSNotificationCenter实例)更改获取默认通知中心的代码,以便使用您的自定义子类。

@H_419_11@请注意,第一个问题可以使用具有弱引用回调的CFDictionary,相应观察者的container class with a weak reference,或者如果您在Mac OS X上的垃圾回收环境中,可以解析NSHashtable。

总结

以上是内存溢出为你收集整理的objective-c – NSNotificationCenter:观察员列表?全部内容,希望文章能够帮你解决objective-c – NSNotificationCenter:观察员列表?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1039383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存