2012-04-05 61 views
1

我有崩潰,在該消息中的應用程序:的iOS CALayerInvalidGeometry

終止應用程序由於未捕獲的異常 'CALayerInvalidGeometry', 原因: '的CALayer位置包含的NaN:[2.74665e-34楠]'

這裏更詳細的異常消息:

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 

我應該怎麼找?

我讀過那可能是零除?

還有什麼可以成爲這次事故的嫌疑人?

謝謝!

回答

2

的問題是這些功能之間:

8 UIKit  -[UILabel setFrame:] + 233 
9 Infectious -[SusceptibilityHistoryController buildHistogram:] + 9648 

要調用label.frame = ...,而且很可能以某種方式計算的值,結果是NaN,表示「不是一個數字」,正如你正確的建議,它可能是o除零操作的結果。但它可能出現很多其他原因:http://en.wikipedia.org/wiki/NaN

通過名爲「buildHistogram:」的函數,查找對「setFrame」或「.frame =」的調用,並查找計算出的位置如何變爲NaN。如果涉及到一個分部,它可能會被零分割。