使用新发布的iOS8,我在TableViews中遇到过以前不存在的崩溃。
我使用以下代码计算单元格高度。这在iOS7上运行得非常好,但在iOS8上崩溃了。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
cell.frame = CGRectMake(0, 0, tableView.frame.size.width, 0);
[cell setNeedsUpdateConstraints];
[cell updateConstraintsIfNeeded];
CGFloat height = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
return height + 1;
}
*** - [UITableViewCell release]:发送到解除分配的实例0x7d2e2bb0的消息
当这次崩溃发生时,我得到以下Stacktrace :(对不起,图片,不能复制出来的AppCode文本)
这是仪器输出......
之前是否有人见过这种行为,或者对如何防止这种崩溃有所了解?
答案 0 :(得分:0)
好的,现在就开始工作了。
问题是:在您的自定义UITableViewCell类中,不要设置
self.contentView.translatesAutoresizingMaskIntoConstraints = NO;
(即使您使用的是AutoLayout)
我不知道为什么,但是一旦确定,就会发生崩溃。