在代码中的某个时刻,可能会添加类似
的内容[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething) name:@"Hello" object:nil];
如何测试此通知是否已在队列中处于活动状态或已被删除,以防止添加重复内容?
感谢。
答案 0 :(得分:30)
如果您的意思是“测试您是否已经注册为通知的观察员”,我认为除了发布通知并看到您收到回调(可能带来灾难性后果)之外,还有一种简单的方法。
如果存在双重添加的危险,我通常在添加之前使用[[NSNotificationCenter defaultCenter] removeObserver:self name:foo object:bar]
。
在队列中不会注册通知。
答案 1 :(得分:0)
在添加之前删除观察者:
How to avoid adding multiple NSNotification observer?
对于单元测试,您应该模拟NSNotificationCenter,因为它是依赖项: