应用程序崩溃访问heightForRowAtIndexPath委托方法中的TableViewCell

时间:2011-12-13 17:52:15

标签: objective-c ios uitableview

应用程序在尝试访问heightForRowAtIndexPath委托方法中的[tableView cellForRowAtIndexPath:indexPath]时崩溃。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    if ([tableView cellForRowAtIndexPath:indexPath] someBOOLProperty]) {
        return kSomeHeight;
    } 

    return kDefaultHeight;
}

3 个答案:

答案 0 :(得分:4)

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

我们在上面调用方法时没有tableViewCell个对象。

我认为在上面的委托中使用[tableView cellForRowAtIndexPath:indexPath]是不正确的。

答案 1 :(得分:1)

-cellForRowAtIndexPath:会调用代理人的-tableView:heightForRowAtIndexPath:方法,因此您有一个循环会导致您的应用崩溃。您需要找到一种方法,以不依赖于使用someBOOLProperty获取单元格的方式将indexPaths映射到-cellForRowAtIndexPath值。

答案 2 :(得分:1)

建立Ali3n所说的内容,我认为您需要使用您的表所依据的数据集来确定单元格高度,而不是使用表格内容(可能尚不存在)。