UITableViewでfatal error: Array index out of range

スポンサーリンク

Xcode で ViewController の中に Table View を配置して、UITableViewDelegate, UITableViewDataSource プロトコルのメソッドを実装するという、よく使う処理を書いたのですが、表題のエラーに遭遇しました。ビルドすると Xcode コンソールに以下のように表示される。

原因は、tableView(tableView: UITableView, numberOfRowsInSection section: Int) の実装に不備があって、セクションに含まれるセルの行数をとりあえずの動作確認のために固定してたのが原因。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

tableView(tableView: UITableView, numberOfRowsInSection section: Int) で実際のセルの行数を返すように修正

最初、以下のように tableView(tableView: UITableView, numberOfRowsInSection section: Int) で、とりあえずの動作確認のために、セクションのセル行数を 20 として固定で返すようにしていた。これを修正し忘れてたのが原因で、少しはまってしまいました。

TodoListViewController.swift

viewDidLoad で登録済みの Todo タスクを全て取得して、Table View に表示するような処理です。該当の箇所を、以下のように修正して、実際の tasks の数(tasks.count)を返すようにしました。

TodoListViewController.swift

これで、fatal error: Array index out of range が出なくなりOK。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!