美文网首页
一个bug: iOS 内存暴增 内存泄漏 卡死 闪退 iOS13

一个bug: iOS 内存暴增 内存泄漏 卡死 闪退 iOS13

作者: 万年老参 | 来源:发表于2020-03-02 16:11 被阅读0次

    项目收到反馈,app有一个页面,点进去就卡住,然后过一会就闪退了。
    然而这个问题我自己的手机一直没有遇到,
    刚好同事那边手机也出现了这个问题,借过来连Xcode跑一下看看。
    进入页面,卡住,内存开始暴增,直至闪退,没有报错点。。控制台输出:

    Terminated due to memory issue
    

    并且在iOS13以上版本没有出现。
    可以检查一下内存暴增前是不是有为<Null>的字符串,没有处理,尤其是检查接口返回数据。
    iOS13之后好像出现<Null>也不会崩溃了。所以有些地方开发时用的机器是iOS13的话,可能会忽略这个问题。

    这个问题出现了一个月,我才解决掉。之前一直以为是偶发,并且检查了代码之后也没发现什么问题,就没有重视。直到连续收到两个反馈都是说这个问题的,开始重视起来:
    1检查手机版本,我的手机是iOS13,同事的手机是iOS12.0,猜测可能和版本有关系。
    2然后开始检查代码,项目里面这个闪退的地方刚好是我用到一个第三方sdk,并且是用来控制viewController显示的。
    然后我就先入为主的以为是某个地方产生了死循环或者别的原因,无限的生成新的viewController。但是一直没找到错误点。
    3最后重写了这个页面,从干净的viewController开始,加入第三方sdk,再加入页面切换动作,再加入接口,获取数据,在tableview中展示。
    果然在加入接口之后,出现了内存暴增。
    4然后我开始排查AFNetworking。。。。嗯,这个念头出现了2秒,就放弃了,简单换一个返回数据格式一样的另一个接口,问题就不出现了。然后意识到,可能是后台返回数据有问题。
    5检查后台返回数据,果然出现<Null>
    代码中加入空值判断,并告知后台,问题结束。

    相关文章

      网友评论

          本文标题:一个bug: iOS 内存暴增 内存泄漏 卡死 闪退 iOS13

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