アプリでコア データを使用して、50,000 個以上のオブジェクトを持つエンティティを格納しています。これをテーブルビューで NSFetchedResultsController とペアにしました。セルの再利用により、テーブル ビューは正常に機能しますが、私の最大の問題は、実際のデータベースをキューしてデータセットを取得することです。
テーブルビューを最初にロードするとき、データベースからのすべての結果が必要です。単一のソート記述子でデフォルトのフェッチ要求を使用しており、batchSize を 1,000 に設定しています。iPad 2 では、このクエリが完了するまでに最大15 秒かかります。また、検索がキャンセルされた後にこのクエリを実行する必要があるため、全体的にアプリが使用できなくなります。私の推測では、CD はまだこれらすべての結果を解決するか、セクションなどをセットアップする必要があります。新しい行が常に追加されたり、並べ替え順序が変更されたりするという意味で、コンテンツは非常に動的でもあります。そのため、キャッシュの利点は限られています。
fetchRequest で fetchLimit を使用してから、いくつかの基本的なページングを実装するのが最善の選択肢であると考えています。テーブルビューが最後までスクロールすると、結果の次の「ページ」が取得されますか? このアプローチに関する私の唯一の問題は、sectionIndex を失い、それを回避する方法が考えられないことです。
誰かがアイデアを持っているか、すでにこの問題に対処していますか?