UITableView に Web API から順次データを読み込んで表示する方法の考察

Written by じび on 6月 15th, 2014

Web APIで取得したデータをUITableViewに表示する必要があり、色々調べたり考えた結果をまとめました。

対象としているWeb API

  • パラメータに当てはまるデータをリストで返してくるが、一度にすべてのデータを返してくるのではなく、50件とか決められた上限までのデータしか返さない。
  • 続きのデータが欲しい場合は、続きの先頭番号を指定して読み出す。それもまた決められた上限までしか返さない。

最初APIアクセスが終了するまでのテーブル表示はどうするか?

  • 初回は空のセルを表示する。
  • 一回でも読み込み済みならデータソースをメモリ上に残しておき、それを表示する。
  • もし、頻繁にデータソースが消え、空セル表示が目につくようなら、tmp領域に書き込んでおいて、それを読み出すように変更する。

次のAPIアクセスはどのタイミングで行うか?

  • 定番はない模様。
  • 例えば10セル前のcellForRowAtIndexPathが呼ばれたら、次のデータ読み込みを開始する。
  • willDisplayCell:とcellForAtIndexPath:はペアで呼び出されているようなので、どちらでも可能だが、cellForAtIndexPathはほぼ必ず実装されているのでそちらで行う。

データは何処に溜めておくのか?メモリor永続化?

  • とりあえずメモリ。
  • 問題がでるようならtmp領域に永続化。

データを解放するタイミングは?

  • データ量的に少なければ必要なし。
  • 次のデータ読み込み時に、貯めてあるデータ量がある一定を超えたら、読み込んだのと逆側をデータを同じ分だけ解放する。
 

Leave a Comment