因为在做一个即时通讯APP,用到了语音通话等,在之前NSNotificationCenter一直可以接收到消息,升级xcode11.1的时候,应该是苹果对NSNotificationCenter进行了安全措施,之前是放在了viewDidLoad里面 后来查找资料正确的姿势应该是
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test) name:@"test" object:nil]; }
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"test" object:nil]; }
还有就是项目中可能还有[[NSNotificationCenter defaultCenter] removeObserver:self]; 可能还没收到通知之前自己移除了,所以要细心哦
解决了我的问题,但是大多数人应该和我一样,放在了viewDidLoad里面,移除用的dealloc里,如果这个方法解决不了,就用上述观点。