我有一个 NSArrayController 绑定到我的托管对象上下文中的一个类。在运行时 NSArrayController 可以应用许多不同的过滤谓词。在某些时间间隔,我想遍历我的 NSArrayController 的内容,而不管应用到它的过滤谓词。
为此,我将 filterPredicate 设置为 nil,然后在遍历我的数组后恢复它。这似乎可行,但我想知道这是否是最佳做法?我应该改为手动轮询我的托管对象上下文吗?
NSPredicate *predicate = nil;
predicate = [myArrayController filterPredicate];
[myArrayController setFilterPredicate:nil];
for(MyManagedObject *object in [myArrayController arrangedObjects]) {
// ...
}
[myArrayController setFilterPredicate:predicate];