Reputation: 16138
I have an app that is crashing, with this message:
Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [2.74665e-34 nan]'
here a more detailed exception message:
CALayer position contains NaN: [2.74665e-34 nan]
2012-04-05 15:48:00.185 Infectious[28198:fb03] (
0 CoreFoundation 0x0226803e __exceptionPreprocess + 206
1 libobjc.A.dylib 0x02820cd6 objc_exception_throw + 44
2 CoreFoundation 0x02210a48 +[NSException raise:format:arguments:] + 136
3 CoreFoundation 0x022109b9 +[NSException raise:format:] + 57
4 QuartzCore 0x00df3c0d _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb + 155
5 QuartzCore 0x00de9f55 -[CALayer setPosition:] + 68
6 QuartzCore 0x00de9a0a -[CALayer setFrame:] + 675
7 UIKit 0x00efbfb8 -[UIView(Geometry) setFrame:] + 198
8 UIKit 0x010071a1 -[UILabel setFrame:] + 233
9 Infectious 0x00010e10 -[SusceptibilityHistoryController buildHistogram:] + 9648
10 Infectious 0x0000db7e -[SusceptibilityHistoryController viewDidLoad] + 1742
11 UIKit 0x00f8fa1e -[UIViewController view] + 184
12 UIKit 0x00f8fd11 -[UIViewController contentScrollView] + 36
13 UIKit 0x00fa18fd -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 36
14 UIKit 0x00fa1aef -[UINavigationController _layoutViewController:] + 43
15 UIKit 0x00fa1dbb -[UINavigationController _startTransition:fromViewController:toViewController:] + 303
16 UIKit 0x00fa285f -[UINavigationController _startDeferredTransitionIfNeeded] + 288
17 UIKit 0x00fa2e06 -[UINavigationController pushViewController:transition:forceImmediate:] + 989
18 UIKit 0x00fa2a24 -[UINavigationController pushViewController:animated:] + 62
19 Infectious 0x0000851d -[RecentSusceptibilityController tableView:didSelectRowAtIndexPath:] + 269
20 UIKit 0x00f595c5 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1164
21 UIKit 0x00f597fa -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 201
22 Foundation 0x017ee85d __NSFireDelayedPerform + 389
23 CoreFoundation 0x0223c936 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
24 CoreFoundation 0x0223c3d7 __CFRunLoopDoTimer + 551
25 CoreFoundation 0x0219f790 __CFRunLoopRun + 1888
26 CoreFoundation 0x0219ed84 CFRunLoopRunSpecific + 212
27 CoreFoundation 0x0219ec9b CFRunLoopRunInMode + 123
28 GraphicsServices 0x0315a7d8 GSEventRunModal + 190
29 GraphicsServices 0x0315a88a GSEventRun + 103
30 UIKit 0x00ec8626 UIApplicationMain + 1163
31 Infectious 0x0001131b main + 187
32 Infectious 0x00002365 start + 53
what should i look for?
I have read that might be a division by zero?
what else can be the suspect for this crash?
thanks!
Upvotes: 1
Views: 6184
Reputation: 7389
The problem is between these functions:
8 UIKit -[UILabel setFrame:] + 233
9 Infectious -[SusceptibilityHistoryController buildHistogram:] + 9648
You are calling label.frame = ...
, and probably calculating the value somehow and the result is a NaN, which means "not a number" and, as you correctly suggested, it can be the result of o divide-by-zero operation. But it can appear for a lot other reasons: http://en.wikipedia.org/wiki/NaN
Go through the function called "buildHistogram:", find the call to either "setFrame" or ".frame = " and find how can the computed position become NaN. If there is a division involved, it will probably be a division by zero.
Upvotes: 3