我有两个根本没有相关的uitableviews,但它们是相同的视图。动物tableview显示信息,但animallocation不显示任何内容。我在第二个if语句的第二个return语句中放了一个断点,但是程序没有停止。我也遇到了错误(见下文)。我该如何解决?第一个if语句有效。 animallocationarray填充它打印(" Africa"," India"," South America")。我收到错误http://puu.sh/mNK2J/549dde1225.png
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if(tableView == animal){
var cell: animalCell = self.reviews.dequeueReusableCellWithIdentifier("Cell") as! animalCell
cell.box.text = animalarray[indexPath.row]
if(indexPath.row % 2 == 0){
cell.backgroundColor = RGB("ffffff")
}else{
cell.backgroundColor = RGB("F98233")
}
return cell
}
if(tableView == animallocation){
var cell: location = self.reviews.dequeueReusableCellWithIdentifier("location") as! location
cell.label.text = animallocatioarray[indexPath.row]
if(indexPath.row == 0){
cell.label.textColor = RGB("fffff")
}
if(indexPath.row != 0){
cellvs.vslabel.textColor = RGB("f52654")
}
return cell //placed a breakpoint here but nothing happens
}
}
答案 0 :(得分:0)
你错过了案例默认。你可以编辑
if(tableView == animal){
var cell: animalCell = self.reviews.dequeueReusableCellWithIdentifier("Cell") as! animalCell
cell.box.text = animalarray[indexPath.row]
if(indexPath.row % 2 == 0){
cell.backgroundColor = RGB("ffffff")
}else{
cell.backgroundColor = RGB("F98233")
}
return cell
}
if(tableView == animallocation){
var cell: location = self.reviews.dequeueReusableCellWithIdentifier("location") as! location
cell.label.text = animallocatioarray[indexPath.row]
if(indexPath.row == 0){
cell.label.textColor = RGB("fffff")
}
if(indexPath.row != 0){
cellvs.vslabel.textColor = RGB("f52654")
}
return cell //placed a breakpoint here but nothing happens
}
要:
if(tableView == animal){
var cell: animalCell = self.reviews.dequeueReusableCellWithIdentifier("Cell") as! animalCell
cell.box.text = animalarray[indexPath.row]
if(indexPath.row % 2 == 0){
cell.backgroundColor = RGB("ffffff")
}else{
cell.backgroundColor = RGB("F98233")
}
return cell
}
var cell: location = self.reviews.dequeueReusableCellWithIdentifier("location") as! location
cell.label.text = animallocatioarray[indexPath.row]
if(indexPath.row == 0){
cell.label.textColor = RGB("fffff")
}
if(indexPath.row != 0){
cellvs.vslabel.textColor = RGB("f52654")
}
return cell //placed a breakpoint here but nothing happens
答案 1 :(得分:0)
该函数必须返回UITableViewCell
。在您的代码中,您有两个if
语句。如果它们都失败,则不会执行return
语句。这就是你看错的原因 - 如果代码路径没有返回所需的类型,那就是编译错误。
在您的情况下,两个if
语句中的一个将始终为真,但编译器无法知道。如果您将第二个重新编码为else
而不是另一个if
,则不会有任何代码路径不会返回值。即。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if (tableView == animal) {
// animal code
return cell
} else { // i.e. if (tableview == animallocation)
// animallocation code
return cell
}
}
答案 2 :(得分:0)
将以下代码替换为您的tableview:cellForRowAtIndexPath:
。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if(tableView == animal){
var cell: animalCell = self.reviews.dequeueReusableCellWithIdentifier("Cell") as! animalCell
cell.box.text = animalarray[indexPath.row]
if(indexPath.row % 2 == 0){
cell.backgroundColor = RGB("ffffff")
}else{
cell.backgroundColor = RGB("F98233")
}
return cell
}
else{
var cell: location = self.reviews.dequeueReusableCellWithIdentifier("location") as! location
cell.label.text = animallocatioarray[indexPath.row]
if(indexPath.row == 0){
cell.label.textColor = RGB("fffff")
}
else if(indexPath.row != 0){
cellvs.vslabel.textColor = RGB("f52654")
}
return cell //placed a breakpoint here but nothing happens
}
}
在你的情况下,你将在if条件下返回单元格, 但我们也要考虑如果条件不正确的情况, 即是其他部分。