iPhone - 测试是否存在通知

时间:2010-09-26 21:16:30

标签: iphone

在代码中的某个时刻,可能会添加类似

的内容
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething) name:@"Hello" object:nil];   

如何测试此通知是否已在队列中处于活动状态或已被删除,以防止添加重复内容?

感谢。

2 个答案:

答案 0 :(得分:30)

如果您的意思是“测试您是否已经注册为通知的观察员”,我认为除了发布通知并看到您收到回调(可能带来灾难性后果)之外,还有一种简单的方法。

如果存在双重添加的危险,我通常在添加之前使用[[NSNotificationCenter defaultCenter] removeObserver:self name:foo object:bar]

在队列中不会注册通知。

答案 1 :(得分:0)

在添加之前删除观察者:

How to avoid adding multiple NSNotification observer?

对于单元测试,您应该模拟NSNotificationCenter,因为它是依赖项:

http://www.hpique.com/2013/12/nsnotificationcenter-part-3/