スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Swift】UITableView 複数行消す時の注意点

テーブルの行を複数消したいときにハマる可能性のあるポイントをまとめる。
具体的なコードの提示は逆に混乱に繋がると思うので概念だけを記載する。
下記のようなテーブルがあったとする。

tabledata = [1, 2, 3, 4, 5]

テーブル:
|1|2|3|4|5|


「tabledata」とはテーブルに表示するデータソース、「テーブル」とは実際に作成したテーブルを表す。
このテーブルから5を削除したい場合、
deleteRowsAtIndexPaths
を使って「テーブル」から5を取り除いた後、「tabledata」からも5を取り除く。


tabledata = [1, 2, 3, 4]

テーブル:
|1|2|3|4|


これは上手くいく。
では、このあとテーブルから3、4を消したい場合はどうするか。
まず3を消してから4を消す場合、下記のように進めないとエラーが出る。


tabledata = [1, 2, 4]

テーブル:
|1|2|4|





tabledata = [1, 2]

テーブル:
|1|2|


セルを消すのは1行ずつ。
だから、消す行に応じて都度tabledataの更新をしなければならない。
つまり、最終結果は
tabledata = [1, 2]
であったとしても、
tabledata = [1, 2, 4]
を一度経由しないとデータの整合性が取れないということだ。

コメント

コメントの投稿

非公開コメント

PR

PR

プロフィール

何でも書くman

Author:何でも書くman
思ったことや備忘録など、とりあえずなんでも書きます。IT系のことや趣味、生活に関わることなども。

ページの先頭へ戻る
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。