ViewController是项目的入口也就是根试图控制器,然后UITabBarController在其上面模态产生,还有一个通话CallingVC,也是由ViewController模态产生,并且每次使用完成后置nil,需要时在生成新的。其中在UITabBarController的一个VC中post出去通知,ViewController接收该通知,并且对此通知方法进行相应的操作,我测试的是有网和无网状态,刚开始当我把网络关闭的时候,进行语音通话提示“网络无连接”,然后当我把网络打开进行通话的时候,通知执行的方法执行了两次,刚开始始终找不到答案,最后发现当网络断开的时候ViewController又重新生成了一个,等于ViewController的viewDidLoad方法又走了一次,且通知也又添加了一次,这是原因,最终解决办法是把网络断开时在那里把通知全部移除,然后问题就解决了。
NSNotificationCenter执行的方法走了多次,必须从源头找原因,妥善处理好NSNotificationCenter!