アプリを実行するたびに、tableView
にはユーザーが入力を待つデータがありません。問題はnumberOfSections
が1であれば、それだけで正常に動作しますが、私は2に変更したときに、私はそれが含まれているとしながら、あなたがuserBudget
のindex 1
にアクセスしているので、インデックスが範囲UITableViewセクションインデックスが範囲外ですが、実際には範囲外です
func numberOfSections(in tableView: UITableView) -> Int {
return 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "expenseCell") as? ExpenseCell else { return UITableViewCell() }
let budget = userBudget[indexPath.section][indexPath.row]
cell.delegate = self
cell.configureCell(budget: budget)
return cell
}
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
return UITableViewCellEditingStyle.none
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return userBudget[section].count // <- Crash here
}
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return "Practice with Sections \(section)"
}
で
を置き換えますか? – iPatel
'userBudget'には1つの配列しかありません。したがって、まず 'userBudget'の値を確認し、それに複数の配列があることを確認してください。 –
numberOfSectionsを変更してuserBudget?countを返します。 0(userBudgetがオプションの場合)ow userBudget.count。値をハードコードしないでください。 –