tableView.insertRowsでハマった


どれだけセル更新しようと思って配列更新しても反映されなかったけどすごい初歩的なミスだった気がする。
雑だけど書いておく。

tableView.insertRows(at: [IndexPath(row: i, section: j )], with: UITableViewRowAnimation.*)で挿入(変更通知)する位置iと、
tableView:cellForRowAtでテーブルセルに表示する配列の要素位置iは揃える必要があって、そこに気づけなかった。
まあ当たり前だとは思うんだけど…

自分はinsertRowsで挿入する前に対象配列をappendで更新(=配列末尾に追加)してるにも関わらず、
insertRowsのIndexPathのrowに0を指定してたから、
いくら配列更新しても、配列の0番目要素がinsertRowされて、
無限に配列の0番目要素がセルに追加される形に…

なおappendで更新するならIndexPath(row: 配列.count-1, section: <任意>)とすればよい