• 小胖说事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。便会报错。

  • 相关阅读:
    prase arraylist where in to ParamsQuery on sql server 2008 using TVB: tvpdemo.cs(where in 转sql 参数化查询)
    手动依赖性注入 NInject(1) (转载)
    单件(单态,Singleton)模式部分
    详解Javascript中的Url编码/解码
    学习Web应用漏洞最好的教程WebGoat(转载)
    百度网盘 邀请码
    colorbox去除close关闭按钮,附上colorbox的基本使用方法
    P3974 [TJOI2015]组合数学
    P1772 [ZJOI2006]物流运输
    P1434 [SHOI2002]滑雪
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6814773.html
Copyright © 2020-2023  润新知