次のコードは参照データが変化したらテーブル全体を更新します。}}テーブル更新方法UITableViewの次の3つのメソッドで更新します。全てのセルとセクションを更新します。指定セクションと付随するいセルを更新します。指定セルをアニメ付きで更新します。更新前と更新後のセクション内のセル数が同じでないとランタイムエラーになります。セル数が増えたりセル内のレイアウトが複雑だったりすると全体更新は負荷がかかります。動的に変更で呼ばれるメソッドゆえあまり負荷が重くなるとカクツキが起きるようになります。場合によってはスパイクといって数ミリ秒~数秒固まります。負荷がセンシティブな要素であるなら、更新範囲を削ることで更新にかかる時間を短くすることが重要になります。メソッドはセクション単位での更新になります。reloadRows(at:with:)がありますが、更新前と更新後のセクション内のセル数が一致してる条件が必要なのでケースによっては使えません。reloadRows(at:with:)はどちらもセクションまたはセルなど具体的な場所を指定する必要があります。ケースによっては特定するのが難しいことがあります。その場合は、次のメソッドを使うと特定のヒントまたはそのまま使えます。選択中のセル位置を取得UITableView.indexPathsForSelectedRowsUITableView.indexPathForSelectedRow指定スクリーン座標のセル位置を取得UITableView.indexPathsForRows(in:)UITableView.indexPathForRow(at:)指定セルのセル位置を取得UITableView.indexPath(for:)表示中のセル位置を取得UITableView.indexPathsForVisibleRows例えば表示中セルの全セクションを更新したい場合、次のコードのように工夫すればセクション一覧を取得できます。UITableView.RowAnimation.automatic)Setに入れてるのはセクションの重複排除のためです。Arrayが持ってた順番保証がなくなりますが、必要ないので問題ないです。更新を呼びすぎるとシステムは愚直にテーブルを更新してしまいます。1~2回無駄に増えたと程度ではあまり目立ちません。スペックの低いiPhoneや高負荷状態では、非常に目立ちます。データ依存で再現しにくいケースがあります。部分更新でもっともリスクな不具合として、更新場所が適切ではなくテーブルが更新されないバグです。開発中に見つけられればそれは良しとして、データ依存による不具合であれば本番しか起きていない不具合でそれはアプリとして非常に使いにくい動作として現れます。残念ながらクラッシュはほぼしないでしょう。mothuleこのページはmothuleの技術ブログになります。当サイトに記載された情報により損害が発生しましても、責任は致しかねません。