应用程序在尝试访问heightForRowAtIndexPath委托方法中的[tableView cellForRowAtIndexPath:indexPath]时崩溃。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([tableView cellForRowAtIndexPath:indexPath] someBOOLProperty]) {
return kSomeHeight;
}
return kDefaultHeight;
}
答案 0 :(得分:4)
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
我们在上面调用方法时没有tableViewCell
个对象。
我认为在上面的委托中使用[tableView cellForRowAtIndexPath:indexPath
]是不正确的。
答案 1 :(得分:1)
-cellForRowAtIndexPath:
会调用代理人的-tableView:heightForRowAtIndexPath:
方法,因此您有一个循环会导致您的应用崩溃。您需要找到一种方法,以不依赖于使用someBOOLProperty
获取单元格的方式将indexPaths映射到-cellForRowAtIndexPath
值。
答案 2 :(得分:1)
建立Ali3n所说的内容,我认为您需要使用您的表所依据的数据集来确定单元格高度,而不是使用表格内容(可能尚不存在)。