J'ai un NSArrayController qui est lié à une classe dans mon contexte d'objet géré. Pendant l'exécution, NSArrayController peut avoir un certain nombre de prédicats de filtre différents appliqués. À certains intervalles, je veux parcourir le contenu de mon NSArrayController indépendamment du prédicat de filtre qui lui est appliqué.Désactivation temporaire de NSArrayController filterPredicate ou consultation de ManagedObjectContext?
Pour ce faire, j'ai mis le filterPredicate à zéro, puis je l'ai rétabli après avoir parcouru mon tableau. Cela semble fonctionner, mais je me demande si c'est la meilleure pratique? Dois-je interroger mon contexte d'objet géré manuellement?
NSPredicate *predicate = nil;
predicate = [myArrayController filterPredicate];
[myArrayController setFilterPredicate:nil];
for(MyManagedObject *object in [myArrayController arrangedObjects]) {
// ...
}
[myArrayController setFilterPredicate:predicate];