如果在视图控制器上有两个通知,那么有两个这样的观察者合适吗:
[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotifications:) name:@"note1" object:nil];
[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotifications:) name:@"note2" object:nil];或者,我只是通过向名称传入nil,然后检查在handleNotification函数中发送的通知来判断哪个通知是运行的:
[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotifications:) name:nil object:nil];谢谢。
发布于 2015-09-25 08:19:02
实际上,如果您将nil作为一个名称传递,那么您将接收所有通知,而不管它们的名称(而不仅仅是您想要的两个通知)。最好是分别订阅每一个,命名它们。
摘录自苹果文档:
如果传递为零,通知中心将不使用通知的名称来决定是否将其传递给观察者。
(起初,我并不清楚这一点,我误以为你不会收到任何通知)。
您可以对两者使用相同的回调/侦听器,并根据收到的通知来决定该做什么。
您可以在NSNotificationCenter上创建一个类别来处理多个名称的注册,这就是创建类别的目的!
https://stackoverflow.com/questions/32777742
复制相似问题