2017-03-17 31 views
-3

我当前正在尝试隐藏tableview标头,如果该部分不返回任何行。这是我现在有,但它在运行时返回一个错误EXC_BAD_ACCESS:在该行if peopleImagesTableView.numberOfRows(inSection: 1) == 0 {当section0中的numberOfRows隐藏tableview标头

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    let headerHeight: CGFloat 

    switch section { 
    case 0: 
     headerHeight = 0 
    case 1: 
     if peopleImagesTableView.numberOfRows(inSection: 1) == 0 { 
      headerHeight = 0 
     } else { 
     headerHeight = 40 
     } 
    default: 
     headerHeight = 0 
    } 
    return headerHeight 
    } 
+0

您需要返回浮点值。 –

+0

虽然代码行导致错误? – rmaddy

+0

@rmaddy对不起,使一个答案。: –

回答

0

我觉得问题。因为tableView(_:heightForHeaderInSection:)tableView(_:numberOfRowsInSection:)之前运行,所以它无法知道行数和应用程序崩溃。你应该检查你的数据而不是调用numberOfRows函数。例如:

if data[1].count == 0 { 
    headerHeight = 0 
} else { 
    headerHeight = 40 
}