RealmでTableViewにデータを表示しようとした時、タイトルのエラーが起きたので対応方法を記します。
このエラーはRealmのデータ更新時、Realmに保存されているモデルの件数と表示されているTableViewの件数(TableViewの認識している件数が以前のままで)の整合性がとれなくエラーになるようです。
var participants: Results<Participant>?
// cellにデータを表示
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: CELL_ID) as! AttendanceTableViewCell
cell.delegate = self
cell.index = indexPath
cell.textLabel?.text = participants?[save:indexPath.row].name
}
// Resultsを拡張
extension Results {
subscript (save index: Int) -> Element? {
if index < self.count {
return self[index]
} else {
return nil
}
}
}