第一次注意到 NaN 这个关键字,虽然以前也遇到过,最近出现了这个错误之后才意识到这个意思,
2018-09-19 09:22:35.894708+0800 iCooling[48551:3911186] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry',
reason: 'CALayer position contains NaN: [nan 115]'
*** First throw call stack:
(
0 CoreFoundation 0x00000001068df1e6 __exceptionPreprocess + 294
1 libobjc.A.dylib 0x0000000108967031 objc_exception_throw + 48
2 CoreFoundation 0x0000000106954975 +[NSException raise:format:] + 197
3 QuartzCore 0x00000001084fec61 _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 151
4 QuartzCore 0x00000001084ef362 -[CALayer setPosition:] + 43
5 QuartzCore 0x00000001084ef990 -[CALayer setFrame:] + 544
6 UIKit 0x000000010af8e7a6 __26-[_UILabelLayer setFrame:]_block_invoke + 80
7 UIKit 0x000000010af8e625 -[_UILabelLayer _setFrameOrBounds:settingAction:] + 23
8 UIKit 0x000000010af8e750 -[_UILabelLayer setFrame:] + 137
9 UIKit 0x000000010a96a4f7 -[UIView(Geometry) setFrame:] + 368
10 UIKit 0x000000010ab72605 -[UILabel setFrame:] + 141
11 UIKit 0x000000010a9576c3 UIViewCommonInitWithFrame + 1380
12 UIKit 0x000000010a957123 -[UIView initWithFrame:] + 113
13 UIKit 0x000000010ab71f59 -[UILabel initWithFrame:] + 77
14 iCooling 0x00000001055fa32c -[ZYCustomPickerView addNameLabel] + 748
15 iCooling 0x00000001055fa66a -[ZYCustomPickerView numberOfComponentsInPickerView:] + 58
看到layer认为是界面上的赋值错误,因为是一个控件,点的赋值不一样,有的可以也有的不可以,看堆栈上的方法调用也像在Label这一步出错,后来一步一步打印,才知道我挖的坑(反正每天都在挖),就因为在计算label的frame时发现原来除数的时候,直接使用的变量,而这个变量为0,除数为0了,所以,就出现这个崩溃了。在此记录下来。
网友评论