zoukankan      html  css  js  c++  java
  • 小胖说事35-----Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer posi

    1. 2011-06-11 15:19:17.167 ***[930:707] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [160 nan]'  
    2. *** Call stack at first throw:  
    3. (  
    4.     0   CoreFoundation                      0x3365d64f __exceptionPreprocess + 114  
    5.     1   libobjc.A.dylib                     0x33aa0c5d objc_exception_throw + 24  
    6.     2   CoreFoundation                      0x3365d491 +[NSException raise:format:arguments:] + 68  
    7.     3   CoreFoundation                      0x3365d4cb +[NSException raise:format:] + 34  
    8.     4   QuartzCore                          0x361db61d _ZL18CALayerSetPositionP7CALayerRKN2CA4Vec2IdEEb + 140  
    9.     5   QuartzCore                          0x361db58b -[CALayer setPosition:] + 38  
    10.     6   QuartzCore                          0x361db4d7 -[CALayer setFrame:] + 390  
    11.     7   UIKit                               0x330eb455 -[UIView(Geometry) setFrame:] + 188  
    12.     8   UIKit                               0x3314854f -[UITableViewCell setFrame:] + 98  
    13.     9   UIKit                               0x33147b3b -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 850  
    14.     10  UIKit                               0x3314776b -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 34  
    15.     11  UIKit                               0x331400cd -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 936  
    16.     12  UIKit                               0x3313f27d -[UITableView layoutSubviews] + 140  
    17.     13  UIKit                               0x330eb5fb -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 26  
    18.     14  CoreFoundation                      0x335caf03 -[NSObject(NSObject) performSelector:withObject:] + 22  
    19.     15  QuartzCore                          0x361dcbb5 -[CALayer layoutSublayers] + 120  
    20.     16  QuartzCore                          0x361dc96d CALayerLayoutIfNeeded + 184  
    21.     17  QuartzCore                          0x361e21c5 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 212  
    22.     18  QuartzCore                          0x361e1fd7 _ZN2CA11Transaction6commitEv + 190  
    23.     19  QuartzCore                          0x361db055 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 56  
    24.     20  CoreFoundation                      0x33634a35 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 16  
    25.     21  CoreFoundation                      0x33636465 __CFRunLoopDoObservers + 412  
    26.     22  CoreFoundation                      0x3363775b __CFRunLoopRun + 854  
    27.     23  CoreFoundation                      0x335c7ec3 CFRunLoopRunSpecific + 230  
    28.     24  CoreFoundation                      0x335c7dcb CFRunLoopRunInMode + 58  
    29.     25  GraphicsServices                    0x3413041f GSEventRunModal + 114  
    30.     26  GraphicsServices                    0x341304cb GSEventRun + 62  
    31.     27  UIKit                               0x33114d69 -[UIApplication _run] + 404  
    32.     28  UIKit                               0x33112807 UIApplicationMain + 670  
    33.     29  PXiPhone                            0x000028df main + 70  
    34.     30  PXiPhone                            0x00002894 start + 40  
    35. )  
    36. terminate called after throwing an instance of 'NSException  

        某天。加完一个功能,在iPhone4上报以上异常。然后crash掉,iPhone3上没事。

    百思不得其解,于是google之。看了一篇stackoverflow.com 的文章,说是某些地方代码除以0了,多见于自己定义的UITableView自己定义UITableViewCell高度的地方。如:tableView:heightForHeaderInSection:tableView:heightForFooterInSection:。这两个delegate方法都没有地方须要除的。在细致看一下文章,说多见于适用sizeWithFont方法计算UILabel宽高的地方。恍然大悟,小弟有一个地方使用了UILabel来显示文本,须要用到sizeWithFont方法计算宽高的,在NSString为nil的时候,sizeWithFont会除以0了。

    PS:在使用sizeWithFont计算UItabelView中label中字的长度时。因为表视图的cell是复用的,所以在计算label中的NSString的长度时,NSString可能为nil,此时可能会除以0。便会报错。

  • 相关阅读:
    高斯消元学习
    HDU 4596 Yet another end of the world(解一阶不定方程)
    Codeforces Round #318 div2
    HDU 4463 Outlets(一条边固定的最小生成树)
    HDU 4458 Shoot the Airplane(计算几何 判断点是否在n边形内)
    HDU 4112 Break the Chocolate(简单的数学推导)
    HDU 4111 Alice and Bob (博弈)
    POJ 2481 Cows(线段树单点更新)
    HDU 4288 Coder(STL水过)
    zoj 2563 Long Dominoes
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6814773.html
Copyright © 2011-2022 走看看