[notificationCenter addObserver:self // 消息观察者:self
selector:@selector(payCancelCallBackGoOrderDetailShowAlert) // 收到消息后的处理方法
name:@"payCancelCallBackGoOrderDetail" // 消息名
object:nil];
比如我这样,注册一个通知。但是payCancelCallBackGoOrderDetailShowAlert函数被执行了多次。从日志看只发送了一次。所以应该是多次重复注册导致的,但是确实没发现哪里有重复注册的情况。
所以为了解决这个办法,我只能执行函数的时候移除掉通知
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"payCancelCallBackGoOrderDetail" object:nil];
比如这样。这样就不会出现这个问题。但是这个是不是完美解决方案呢?如何解决这个问题呢?
一般推荐在init里面addObserver,在dealloc里面removeObserver。