记一次 iOS 开发APP卡住情况 proGC objc_retain 'CALayer position contains NaN: [nan nan]'

错误表现

APP卡住,cpu飙升至100%,暂停APP,无法看到卡住调用栈,能查到proGC、objc_retain等方法调用

记一次 iOS 开发APP卡住情况 proGC objc_retain 'CALayer position contains NaN: [nan nan]'_第1张图片
p_4.png
记一次 iOS 开发APP卡住情况 proGC objc_retain 'CALayer position contains NaN: [nan nan]'_第2张图片
p_2.png
记一次 iOS 开发APP卡住情况 proGC objc_retain 'CALayer position contains NaN: [nan nan]'_第3张图片
p_3.png

错误原因

在iOS9+的系统中,做除法运算时,被除数为0,iOS8系统同样卡住,但是后台会收集到'CALayer position contains NaN: [nan nan]'错误日志

记一次 iOS 开发APP卡住情况 proGC objc_retain 'CALayer position contains NaN: [nan nan]'_第4张图片
p_5.png

错误代码

记一次 iOS 开发APP卡住情况 proGC objc_retain 'CALayer position contains NaN: [nan nan]'_第5张图片
屏幕快照 2019-08-14 下午2.25.20.png

错误代码如上图,判断为两个数组加和,被除数为其中一个数组,所以存在被除数为0的可能,是个很低级但因为没有错误日志很难定位到错误

总结

当出现上述被除数为0的情况时,iOS9+系统不会报错,只会卡住,友盟后台也不会出现错误日志,iOS8系统会卡住,友盟后台会报'CALayer position contains NaN: [nan nan]'错误日志,希望本文能对大家提供帮助

你可能感兴趣的:(记一次 iOS 开发APP卡住情况 proGC objc_retain 'CALayer position contains NaN: [nan nan]')