未在NSArrayController上调用筛选器谓词



我有一个NSArrayController,我在上面用程序应用过滤器谓词:

- (void)setFilters {
    NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(LMRootItem *rootItem, 
                    NSDictionary *bindings) {
        ...
        return YES;
    }];
    [_controller setFilterPredicate:pred];
}

当使用IB设置NSArrayController的内容绑定时,一切正常。

当我以编程方式设置NSArrayController的内容绑定时,我的过滤器谓词函数永远不会被调用,内容也永远不会被过滤:

[_controller bind:@"arrangedObjects" 
         toObject:_otherController    
      withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems" 
          options:nil];

该绑定与我在IB中所做的绑定相同。

有人知道出了什么问题吗?

找到了。看来我应该这么做:

[_controller bind:@"contentArray" 
         toObject:_otherController      
      withKeyPath:@"arrangedObjects.@unionOfArrays.rootItems" 
         options:nil]

最新更新