我正在使用UITableView,并且想在cellForRowAt
函数内添加条件语句来决定是否应该返回单元格。
这是我的意思的示例:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Here is where I add the code to calculate which cells should appear, though it's not important for this example
if condition {
return cell
}
}
但是我收到的错误消息是Missing return in a function expected to return 'UITableViewCell'
有什么办法我不能退货吗?
答案 0 :(得分:2)
恐怕唯一可以接受的解决方案是这样做:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Here is where I add the code to calculate which cells should appear, though it's not important for this example
if condition {
return cell
}
// return empty cell
return UITableViewCell()
}
答案 1 :(得分:1)
有什么办法我不能退货吗?
即使这不是最佳做法-是的,您也可以使用致命错误来使Xcode编译时错误消息静音:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Here is where I add the code to calculate which cells should appear, though it's not important for this example
if condition {
return cell
}
fatalError()
}
但是如果由于某种原因condition
为假-应用程序将崩溃,因此请注意。
为了从致命错误中获取更多上下文,您可以向其传递描述发生了什么的字符串,例如:
fatalError("Condition Is Invalid, Failed Returning a Cell")
答案 2 :(得分:0)
否,您需要始终返回一个单元格。
如果需要抑制单元格,最好使用数据源方法,例如numberOfRowsInSection
。