【问题标题】:NSArrayController observing its content countNSArrayController 观察其内容计数
【发布时间】:2015-07-28 19:30:28
【问题描述】:

如何观察阵列控制器的计数?

到目前为止我已经尝试过:

    //...
    self.array = [[NSMutableArray alloc] init];
    self.arrayController = [[NSArrayController alloc] initWithContent:self.array];

    [self.arrayController addObserver:self
                                  forKeyPath:@"arrangedObjects"
                                     options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
                                     context:@"self.array"];


    [self.array addObject:@"anoop"];
    [self.array addObject:@"amit"];


    NSLog(@"%ld", [self.arrayController.content count] );

}

- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context {

    if( object == self.arrayController) {
           ...
    }
}

我的实际要求是观察数组计数,但由于 Array 不符合 KVO,所以我做不到。此外,我不想继承 Array 并只向其添加一个数组属性,如其他答案所示。然后我想到了观察数组控制器。

任何线索都将受到高度赞赏。

【问题讨论】:

    标签: objective-c nsarray key-value-observing nsarraycontroller


    【解决方案1】:

    为了观察arrangedObjects 的计数,您必须在密钥路径中指定一个集合运算符。您要使用的是@count。

    所以不要使用:

    arrangedObjects
    

    你应该使用

    arrangedObjects.@count
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 2013-05-14
      相关资源
      最近更新 更多