我有一个cellForRowAtIndexPath方法它是这样的
if (indexPath.row == 0) {
//add customCell1
return customCell1;
}
else if (indexPath.row == 1) {
//add customCell2
return customCell2;
}
等等,对于每一行。
我知道我得到这个错误的原因是因为我的返回语句在条件语句中。为什么编译器不检测每个分支返回一个值?此外,在这种情况下,条件分支对我来说似乎是不可避免的,因为我使用不同的自定义单元格来填充表的每一行。我能做到吗?
编译器报错的原因是您的if条件不是详尽的。这里,您只检查2行,但行数将在运行时而不是在编译时推断出来。所以,你必须告诉编译器你想让它处理的所有情况。
所以,解决你的情况(我相信你已经知道这一点),是在最后写一个else
。
如果最后的else if`` is false? You must at least have a final
else without an
if ' .
运行Analyzer并在语句切换中单击,以显示分析器查找此警告所使用的路径。
你必须覆盖所有的可能性,似乎你只覆盖第0行或第1行。
您必须在末尾指定else来捕获其他可能性或者在不适用if的情况下在末尾简单地返回因为行不是0或1
如果你在条件方法中返回一个值,你必须需要特定的任何条件将匹配,所以只有"If"one_answers"Else If"将不工作,还在末尾添加"Else "并返回各自的单元格。