ios:当你碰到tableview cell里报nan错误时的解决方法
2013-01-31 10:37
591 查看
2011-08-25 23:26:58.333 WeiBo[881:707] *** Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan 14]' *** Call stack at first throw: ( 0 CoreFoundation 0x365fa64f __exceptionPreprocess + 114 1 libobjc.A.dylib 0x33853c5d objc_exception_throw + 24 2 CoreFoundation 0x365fa491 +[NSException raise:format:arguments:] + 68 3 CoreFoundation 0x365fa4cb +[NSException raise:format:] + 34 4 QuartzCore 0x30a2661d _ZL18CALayerSetPositionP7CALayerRKN2CA4Vec2IdEEb + 140 5 QuartzCore 0x30a2658b -[CALayer setPosition:] + 38 6 QuartzCore 0x30a264d7 -[CALayer setFrame:] + 390 7 UIKit 0x353e5455 -[UIView(Geometry) setFrame:] + 188 8 UIKit 0x353e52c3 -[UIImageView setFrame:] + 102 9 WeiBo 0x0002df2f -[CHMyListViewController customerCellWithIndex:] + 4150 10 WeiBo 0x0002f2c5 -[CHMyListViewController tableView:cellForRowAtIndexPath:] + 3228 11 UIKit 0x354419ed -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 516 12 UIKit 0x3544176b -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 34 13 UIKit 0x3543a0cd -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 936 14 UIKit 0x3543927d -[UITableView layoutSubviews] + 140 15 UIKit 0x353e55fb -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 26 16 CoreFoundation 0x36567f03 -[NSObject(NSObject) performSelector:withObject:] + 22 17 QuartzCore 0x30a27bb5 -[CALayer layoutSublayers] + 120 18 QuartzCore 0x30a2796d CALayerLayoutIfNeeded + 184 19 QuartzCore 0x30a2d1c5 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 212 20 QuartzCore 0x30a2cfd7 _ZN2CA11Transaction6commitEv + 190 21 QuartzCore 0x30a38dff _ZN2CA11Transaction5flushEv + 46 22 QuartzCore 0x30a38dcd +[CATransaction flush] + 28 23 UIKit 0x35424923 -[UIApplication _reportAppLaunchFinished] + 30 24 UIKit 0x3540fc23 -[UIApplication _runWithURL:payload:launchOrientation: statusBarStyle:statusBarHidden:] + 462 25 UIKit 0x353e47d7 -[UIApplication handleEvent:withNewEvent:] + 1114 26 UIKit 0x353e4215 -[UIApplication sendEvent:] + 44 27 UIKit 0x353e3c53 _UIApplicationHandleEvent + 5090 28 GraphicsServices 0x35d1ee77 PurpleEventCallback + 666 29 CoreFoundation 0x365d1a97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26 30 CoreFoundation 0x365d383f __CFRunLoopDoSource1 + 166 31 CoreFoundation 0x365d460d __CFRunLoopRun + 520 32 CoreFoundation 0x36564ec3 CFRunLoopRunSpecific + 230 33 CoreFoundation 0x36564dcb CFRunLoopRunInMode + 58 34 UIKit 0x3540ed49 -[UIApplication _run] + 372 35 UIKit 0x3540c807 UIApplicationMain + 670 36 WeiBo 0x00003aab main + 82 37 WeiBo 0x00003a54 start + 40
这种错误是在float经过函数运行出了不是数字的值,nan的意思就是not a number。
主要常见原因:
1.除以0
2.sizeWithFont的字符串为nil
3.数学函数不正确运算
解决方法除了排除根源所在之外,用函数isnan()也是不错的选择(至少在没有彻底解决以前)
如下
float _x = NAN; if (!isnan(_x)) { cell.imgView.frame = CGRectMake(_x, 8, 10, 12); }
相关文章推荐
- ios tableView UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 (十六) UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 (十六) UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 (十六) UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 (十六) UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 (十六) UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 (十六) UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 UITableView中Cell重用机制导致内容重复解决方法
- ios tableView那些事 (十六) UITableView中Cell重用机制导致内容重复解决方法
- UITableView.tableHeaderView遮挡cell的解决方法
- iOS tableview的第二页数据刷新特定某个cell数据的解决办法
- iOS tableView分割线问题解决方法
- iOS之Tableview重用出现的错乱三种解决方法
- 关于viewController中的tableview的cell在pop回来后仍有选中效果的解决方法
- iOS tableview的第二页数据刷新特定某个cell数据的解决办法
- IOS开发 UITableView中Cell重用机制导致内容重复解决方法
- iOS开发笔记--解决UITableView中Cell重用机制导致内容出错的方法总结
- iOS中关于动态Tableview中的cell数据传输的多线程问题解决之拙见
- iOS tableView 选中某个cell时 标准的处理方法
- iOS tableview 没有执行cellForRowAtInceldexPath 方法