记录开发中遇到的一个奇葩问题:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'table view row height must not be negative - provided height for index path (<NSIndexPath: 0xc000000000000816> {length = 2, path = 8 - 0}) is -0.010000'
iOS 11系统的 6sPlus 和 模拟器上从来没有出现,在一个5s的10.0系统的机器上出现了。
从日志看,很简单。在tableView的row高度返回方法里,返回了一个负值。然后就去看看- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
这个方法的具体实现,应该很简单。但是令我无语的事情出现了。
所以,我怀疑这是系统的bug。
问题所在
其实问题的出现原因是:
WechatIMG27.jpeg
这里我实现了一个预估高度返回。 我试验过,方法的高度如果返回小于等于1.0,就会出现crash
另外,对于区头和区尾的预估高度,也不能返回小于等于1.0
解决方法
- 1. 这两个预估高度的方法,干脆不要实现
- 2. 返回一个大于1.0的数值。(感觉写大一点,比较保险)
网友评论