tableView cellForRowAt返回自定义单元格错误

时间:2017-03-25 16:59:50

标签: ios swift uitableview cell-formatting

我创建了两个NumberTableViewCellYesNoTableViewCell类,它们的类型都为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!)"这属于哪里?

1 个答案:

答案 0 :(得分:0)

回答你原来的问题,也许是因为你的if和else if不是穷举的:即如果snapshot.value!不等于1或2.尝试用else替换else if,如果这些是snapshot.value!

中唯一可能的两个值