iOS使用NSNotificationCenter通知崩溃

来源:互联网 发布:大数据解决方案的公司 编辑:程序博客网 时间:2024/06/08 09:57

至于NSNotificationCenter通知的使用,博主在这里不多讲,百度会出来一大堆,但是今天博主在使用通知时,出现一个问题,就是在iPhone6+以上机子使用时都没问题,但是在5S上使用直接crash了,博主先使用5S模拟器发现没问题,就差看了一下同事5S机子系统,发现是iOS8.2系统,打了一下全剧断点,断在通知处,且是主线程crash

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeState) name:@"changeState" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"changeState" object:nil];=
因此博主怀疑是之前不细心使用通知没有移除掉,因此增加了一个dealloc方法调用移除通知方法,因为博主在这ViewController中只使用了一个通知,就没有针对通知名去移除

- (void)dealloc{    [super dealloc];    [[NSNotificationCenter defaultCenter] removeObserver:self];}
因为在iOS8.0中,通知没有移除,就会被调用,而此时他虽然被销毁了没有被置为nil,当调用了一个被销毁的对象时自然就会发生crash,因此为了代码严谨性,使用通知时必须针对通知名去进行销毁。

原创粉丝点击