0

iCloudに保存されているさまざまなサイズ(> 100)のファイルがたくさんあります。NSMetadataQueryこれらのファイルを返す があります。それらはNSMetadataQueryオブジェクトからランダムな順序でアプリに報告されます。

それらを開いていくつかの文字列を抽出し、それらを並べ替えてUITableView.

私は2つのアプローチを試しました.A)各ファイルをロードし、ファイル情報の配列をソートreloadDataし、UITableView毎回呼び出す. B)すべてのファイルがロードされるのを待ってから、「完全な」配列をソートしてから1回呼び出しますreloadData

オプション B の方が明らかに優れていますが、基本的には、ユーザーが結果を確認するのに同じくらい時間がかかります。これをどのように行うのが最善ですか?

UITableView表示するデータを別のファイル (PLIST など)に抽出して、実際のデータがバックグラウンドで読み込まれている間にすばやく読み込んで表示できるようにする必要がありますか? または、配列を追跡reloadRowsAtIndexPaths:し、ソートのために後で変更される各行を呼び出すことにより、基本的に実装 A を拡張する必要がありますか?

このシナリオのベスト プラクティスは何ですか?

ありがとう

4

1 に答える 1

0

ユーザーの観点からは、速い方が良いですし、何も表示されないよりは、不完全であっても何かが表示される方が良いです。そう:

  1. この情報をリストするインデックス ファイルを維持できる場合は、それを表示用に使用し、必要なものだけをダウンロードします (Plist のアイデアのように、おそらく iCloud に保存されているか、キー/バリュー ストアに保存されている可能性があります)。
  2. ファイル情報をダウンロードする必要がある場合は、ユーザーにアクティビティ インジケーターを表示して、まだ作業中であることをユーザーに知らせ、取得したアイテムを UI に追加します (オプション A)。

reloadDataを からに変更するreloadRowsAtIndexPaths:とアニメーションが改善されるため、あると便利ですが、必須ではなく、処理が速くなるわけではありません。

于 2014-03-11T11:37:30.853 に答える