如何避免添加多个 NSNotification 观察者?

2024-04-24

目前,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(使用前将#替换为@)

如何避免添加多个 NSNotification 观察者? 的相关文章

随机推荐