目前,API 似乎没有提供一种方法来检测是否已为特定 NSNotification 添加了观察者。除了在端维护一个标志来跟踪之外,避免添加多个 NSNotification 观察者的最佳方法是什么?有人已经创建了一个类别来促进这一点吗?
防止添加重复观察者的一种方法是在再次添加目标/选择器之前显式调用removeObserver。我想你可以将其添加为类别方法:
@interface NSNotificationCenter (UniqueNotif)
- (void)addUniqueObserver:(id)observer selector:(SEL)selector name:(NSString *)name object:(id)object {
[[NSNotificationCenter defaultCenter] removeObserver:observer name:name object:object];
[[NSNotificationCenter defaultCenter] addObserver:observer selector:selector name:name object:object];
}
@end
这假设您只会为任何通知名称的每个目标添加一个唯一的观察者,因为它将删除该通知名称的任何现有观察者。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)