美文网首页
iOS *** Assertion failure in -[M

iOS *** Assertion failure in -[M

作者: 大风先生bigWind | 来源:发表于2017-09-01 11:45 被阅读0次

    1.概述

    先直接说原因吧 :
    出现这个崩溃的原因是UITableView在加载数据的时候, cell里面的单元格数据为空. 所以出现这个报错的话, 你应该去确认一下数据源是否有值, 或者数据是不是不对的.

    好了, 下面说我自己的项目里的这个错误.

    最近项目崩溃了, 打印出来的错误信息如标题所示, 平时都没有这个崩溃, 打了全局断点, 停留在这个地方

    image.png

    因为之前一直没有这个崩溃, 一时间我也是有点懵逼, 但撞上了就要解决.

    2. 原因的寻找

    出现崩溃我们可能首先想到的就是打全局断点, 我也是这么做的, 看到如上图所示的地方, 第一反应肯定就是想是不是页面的布局约束有错误......确认这个思路的过程省略一百万字......总之最后确认不是这个错误;

    蓝后, 继续找啊, 继续找的时候就是从viewdidload方法里开始一个一个的打断点, 最后发现在获取本地数据的时候返回来的数据是不对的!!!!!
    为了更好的说明导致错误的过程, 我先说一下项目里这个页面的数据加载过程:

    viewdidload-->加载本地数据然后设置界面--->加载网络数据然后刷新界面并且将本次数据保存到本地
    

    通过一个个的打断点发现, 加载本地数据的时候返回来的是这个

    {"status":{"Code":"14","Msg":"登录过期,请重新登录"}}
    

    看到这里恍然大悟, 原来将上一次返回来的登录过期的数据也保存起来了, 这样的数据肯定是不能用来设置界面的, 所以导致了开篇所说的结果.

    3. 问题的解决

    找到原因之后就很简单了, 将不正确信息的json不保存包本地就好了. 经过修改之后, 果然如此

    相关文章

      网友评论

          本文标题:iOS *** Assertion failure in -[M

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