2

パラメータNSFetchRequestControllerとして 3 つのプレコンピュータ objectID を使用する をセットアップしNSPredicateました。initWithFetchRequest:

NSManagedObjectContext *moc = [[self managedDocument] managedObjectContext];
[self setFetchedResultsController:[[NSFetchedResultsController alloc]initWithFetchRequest:fRequest
                                                                     managedObjectContext:moc
                                                                       sectionNameKeyPath:nil
                                                                                cacheName:nil]];

私の質問は、セットアップが完了したら、データベースで新しいデータが利用可能になったときにコントローラーで使用されるNSFetchedResultsControllerを変更する方法があるかどうかです。NSFetchRequestリクエストが readOnly であることに気付きました。他に利用できるオプションはありますか?

編集:

リクエスト全体を変更する必要があると考えていましたが、既存の NSFetchedResultsController と既存の NSFetchRequest を使用して新しい NSPredicate を設定するだけでよいのでしょうか?

4

1 に答える 1

1

Apple ドキュメントから: https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsController_Class/

取得リクエストの変更

取得リクエストを単純に変更して結果を変更することはできません。取得リクエストを変更する場合は、次のことを行う必要があります。

キャッシュを使用している場合は、それを削除します (deleteCacheWithName: を使用)。

通常、フェッチ リクエストを変更する場合は、キャッシュを使用しないでください。

取得リクエストを変更します。(述語を修正)

performFetch: を呼び出します。

于 2015-02-19T17:27:16.520 に答える