美文网首页
IOS 8 发送通知崩溃的问题

IOS 8 发送通知崩溃的问题

作者: Superman168 | 来源:发表于2018-10-29 12:22 被阅读0次

    最近偶然发现项目在 ios 8 上面很容易就崩溃了,最终跟踪了一下代码,发现问题出在发送通知上,一发送就崩溃了,出现了垃圾地址俗称的僵尸对象,

    image.png

    BAD_ACCESS 发送通知挂掉,虽然传的值都没问题,但是通知的接收对象已经销毁了,所以会崩溃

    image.png

    如果在iOS9或更高系统运行下是没问题的,系统做了一些优化处理;
    但是在iOS8 系统下就会发生崩溃 ,当你重复执行发送通知的时候就会崩溃,其实就是因为没有移除通知
    在接受通知的类或者界面里的 dealloc 方法中 移除通知就OK

    /** IOS 8 发送通知崩溃的问题 */
    - (void)dealloc
    {
        [[NSNotificationCenter defaultCenter] removeObserver:self];
    }
    
    Using iOS 9 or later the Foundation framework release notes contain some good news:
    
    In OS X 10.11 and iOS 9.0 NSNotificationCenter and NSDistributedNotificationCenter will no longer send notifications to registered observers that may be deallocated.
    
    使用iOS 9或更高版本的Foundation框架发行说明包含一些好消息:
    
    在OS X 10.11和iOS 9.0中,NSNotificationCenter和NSDistributedNotificationCenter将不再向可能已解除分配的已注册观察者发送通知。
    

    这下明白了吧!!!

    相关文章

      网友评论

          本文标题:IOS 8 发送通知崩溃的问题

          本文链接:https://www.haomeiwen.com/subject/ydcbtqtx.html