美文网首页iOS Developer
NSScanner: nil string argument

NSScanner: nil string argument

作者: TEASON | 来源:发表于2015-09-25 15:11 被阅读2468次

    如果转载,请注明出处@TEASON

    这个问题似乎无法通过编译器找到出错地点.无法定位 .
    确实给调试带来了一定的困难 .

    NSScanner是一个类,用来扫描字符串 .
    顾名思义, 参数为空的字符串 . 导致crash

    注意这些地方, 传递的str是否为nil

    stringWithFormat:
    initWithStr:
    initWithFormat:
    imageWithName:
    

    debug建议:

    1.多log, 找到bug的位置后review代码, 哪里会出现空的字符串.
    2.多判断字符串是否为空
    if(str != nil) {
      // do sth
    }
    
    3.判断数组是否为空.

    如果实在看不出来
    往往可能是这个问题, 如果你调用一个成员数组去赋值, 然而当界面load时,很可能这个数组为空 , 就对数组进行操作了, 以至于数组里的对象为空, 当然操作字符串的参数也为空, 所以说到底, 还是你的代码不够健壮 . 基本功不够扎实 .

    if (array != nil) {
        // do sth
    }
    
    4.注意

    如果你还是找不到
    有个快速定位的方式, 但不一定每次都成功.
    就是在左边操作断点的窗口里打开All Exception.
    如图, 是这个东西 . 他能定位每次崩溃的位置 .然后在那里生成断点.


    屏幕快照 2016-01-07 下午8.08.20.png

    相关文章

      网友评论

        本文标题:NSScanner: nil string argument

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