Assertion failure in -[UISection
2017-07-05 本文已影响348人
陈长见
今天有位同事, 写的代码在刷新数据的时候崩溃, 打印台显示:
[ Assertion failure in -[UISectionRowData refreshWithSection:tableView:tableViewRowData:]
全局断点打在了刷新的第三方框架中的reloadData上, 我调试后发现这个现象只出现在了iOS8的真机上, 起初只是认为cell在生成的时候可能有什么原因导致的cell为空, 所以cell在进行渲染时除了问题, 但是打断点在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法中时, 发现崩溃后并没有走这个方法
最后说下解决办法:
同事使用了iOS8以后的自适应布局, 但是项目是纯代码生成的, 并没有使用xib布局cell, 汗~~~. 所以, 如果你也是纯代码写的项目, 也遇到了这个问题, 你可以先查看你的代码中是否有下面这两句代码:
_tableView.estimatedRowHeight = CGFLOAT_MIN;
_tableView.rowHeight = UITableViewAutomaticDimension;
如果有的话, 将这两句删除, 在生成cell的高度时改为自动计算行高的方式
问题就会解决了