У меня есть NSArrayController, который связан с классом в моем контексте управляемых объектов. Во время выполнения NSArrayController может иметь несколько различных предикатов фильтра. Через определенные промежутки времени я хочу перебирать содержимое моего NSArrayController независимо от примененного к нему предиката фильтра.
Чтобы сделать это, я установил filterPredicate на nil, а затем восстановил его после итерации по моему массиву. Кажется, это работает, но мне интересно, если это лучший способ? Должен ли я вместо этого вручную опрашивать контекст управляемого объекта?
NSPredicate *predicate = nil;
predicate = [myArrayController filterPredicate];
[myArrayController setFilterPredicate:nil];
for(MyManagedObject *object in [myArrayController arrangedObjects]) {
// ...
}
[myArrayController setFilterPredicate:predicate];