2つのセクションを持つtableViewを、Firebaseオブジェクトの2つのアレイ(スナップショットと呼ばれます)を使用して作成しようとしています。私はtableFor:fatal error: Index out of range
をロードしようとすると、私のcellForRowAtIndexPath関数にエラーが発生します。ここで致命的なエラー:2つのセクションを持つ範囲外のテーブルビュー
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("PersonCell", forIndexPath: indexPath) as! PersonCell
//set cell text
let guardianDict = guardians[indexPath.row].value as! [String : AnyObject] // error happens here
let dependentDict = dependents[indexPath.row].value as! [String : AnyObject]
cell.personName.text = "test"
return cell
}
は、私は私のセクションを定義する方法である:
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
switch(section){
case 0: return "Dependents"
case 1: return "Guardians"
default: return ""
}
}
任意のアイデア? ありがとう!
EDIT:numberOfSectionsの追加とnumberOfRowsInSection:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 2
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
switch(section){
case 0: return self.dependents.count
case 1: return self.guardians.count
default: return 1
}
}
残りの 'UITableViewDataSource'実装には何がありますか?特に 'numberOfRowsInSection'と' numberOfSections'ですか?これは 'cellForRowAtIndexPath'の' indexPath'値がどこから来るかです。また、セクションはゼロインデックス化されるので、 'case 0'と' case 1'を使う必要があります。 – Deyton
返信いただきありがとうございます!ゼロインデックス付けを修正しました。あなたが要求したセクションを追加しました – winston