通常のボイラープレート コードを使用して Core Data アプリをセットアップし、RootViewController はこれを呼び出して FRC を初期化します。
- (NSFetchedResultsController *)fetchedResultsController
{
if (__fetchedResultsController != nil)
{
return __fetchedResultsController;
}
// configure the fetchRequest, sectionKey and cacheName
__fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest: fetchRequest
managedObjectContext: self.managedObjectContext
sectionNameKeyPath: sectionKey
cacheName: cacheName];
return __fetchedResultsController;
}
私が見たすべてのサンプルコードはこれを行います。しかし、私は大規模なデータ セットを持っており、15,000 を超えるエントリがあるため、iPhone 4S でアプリを起動するのに約 5 秒かかります。これは、キャッシュが有効になっており (キャッシュがないと、11 秒かかります)、インデックス付きの属性を使用しています。
UIActivityIndicatorView
だから私はアプリがこれをロードするのを待っていることを表示できるようにしたい. バックグラウンド スレッドでコア データ オブジェクトをロードし、それらをメイン スレッドにマージする一般的な方法は知っていますが、バックグラウンド スレッドで FRC を初期化して、すべてのオブジェクトがバックグラウンドでロードおよびセクション化されるようにするにはどうすればよいでしょうか?
バックグラウンド スレッドですべてのオブジェクトを読み込んでカスタム ディクショナリに分割し、それを使用してデータを表示できることはわかっていますが、標準の FRC 呼び出しとデリゲートを使用したいと思います。
ありがとう。