代码之家  ›  专栏  ›  技术社区  ›  Duck

iPhone-测试是否存在通知

  •  17
  • Duck  · 技术社区  · 14 年前

    在代码中的某一点上,可以添加

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

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

    谢谢。

    2 回复  |  直到 9 年前
        1
  •  30
  •   tc.    14 年前

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

    如果有两次添加的危险,我通常使用 [[NSNotificationCenter defaultCenter] removeObserver:self name:foo object:bar] 在添加之前。

    队列上没有注册通知。

        2
  •  0
  •   Community CDub    7 年前

    添加观察者之前,请先删除它:

    How to avoid adding multiple NSNotification observer?

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

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