我创建了两个NumberTableViewCell
和YesNoTableViewCell
类,它们的类型都为UITableViewCell
。他们有动态原型“附加”给他们(对不起,如果我说错了,我是新手术语)。
在override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
中,我连接到firebase,根据数据库中的变量,我要么返回一个出列的可重用单元格,要么返回另一个。我已经写出了所有代码,但是,返回给了我错误:
Unexpected non-void return value in void function
。
这是我的代码:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
self.ref.child("campoutinfo").child("scoutQuestions").child("\(indexPath.row+1)").child("answer").observe(.value, with: { (snapshot) in
if "\(snapshot.value!)" == "1" {
var cell = tableView.dequeueReusableCell(withIdentifier: "yes-no_questionfield", for: indexPath) as! YesNoTableViewCell
return cell
} else if "\(snapshot.value!)" == "2" {
var cell = tableView.dequeueReusableCell(withIdentifier: "number_questionfield", for: indexPath) as! NumberTableViewCell
return cell
}
})
}
非常感谢任何帮助。提前谢谢!
编辑:请记住,我必须也适合某些代码:cell.questionLabel.text = "\(snapshot.value!)"
这属于哪里?
答案 0 :(得分:0)
回答你原来的问题,也许是因为你的if和else if不是穷举的:即如果snapshot.value!
不等于1或2.尝试用else替换else if,如果这些是snapshot.value!