我創建了兩類NumberTableViewCell
和YesNoTableViewCell
,它們都有一個類型UITableViewCell
。他們有動態的原型「附加」給他們(對不起,如果我說錯了話,我是新的術語)。tableView cellForRowAt返回自定義單元格錯誤
在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!)"
這屬於哪裏?
**無法從異步完成塊**中返回某些內容。您需要重新設計工作流程。創建一個數據源數組,在'viewDidLoad'中填充數據源數組並重新加載tableview。 – vadian
謝謝!一旦我做出改變,一切都變好了。謝謝! –