管理対象オブジェクト コンテキスト内のクラスにバインドされた NSArrayController があります。実行時に、NSArrayController にはさまざまなフィルター述語を適用できます。特定の間隔で、適用されたフィルター述語に関係なく、NSArrayController のコンテンツを反復処理したいと考えています。
これを行うには、filterPredicate を nil に設定し、配列を反復処理した後に元に戻します。これはうまくいくようですが、それがベストプラクティスかどうか疑問に思っていますか? 代わりに、Managed Object Context を手動でポーリングする必要がありますか?
NSPredicate *predicate = nil;
predicate = [myArrayController filterPredicate];
[myArrayController setFilterPredicate:nil];
for(MyManagedObject *object in [myArrayController arrangedObjects]) {
// ...
}
[myArrayController setFilterPredicate:predicate];