2017-03-25 11 views
0

YesNoTableViewCellの2つのクラスを作成しました。どちらもタイプがUITableViewCellです。ダイナミックなプロトタイプがそれらに「付属」しています(私が事を間違って言えば、私は言葉には慣れていません)。tableView cellForRowAtがカスタムセルエラーを返す

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {私はfirebaseに接続し、データベースの変数によっては、デキューされた再利用可能なセルを1つ返すか、もう1つを返します。私はこれのためのコードをすべて書きましたが、戻り値は私にエラーを与えます:

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

**非同期補完ブロック**から何かを返すことはできません。ワークフローを再設計する必要があります。データソース配列を作成し、データソース配列を 'viewDidLoad'に移入してtableviewをリロードします。 – vadian

+0

ありがとう!いったん私が変更を加えたら、すべてが素晴らしく機能しました。ありがとう! –

答えて

0

ifとelse ifが網羅的ではないことが原因である可能性があります。すなわち、snapshot.value!が1または2に等しくない場合です。elseをelseと置き換えてみてください。可能な値snapshot.value!

関連する問題