NSScanner: nil string argument

如果转载,请注明出处@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)