UIViewController上的KVO childViewControllers数组

时间:2012-04-26 19:20:55

标签: iphone objective-c ios

使用accessors似乎是在集合对象上获取KVO通知的方法,但这似乎不适用于UIViewController的childViewControllers NSArray属性。我希望在向此属性添加或删除对象时收到通知。所以我尝试了这个:

[self addObserver:self forKeyPath:@"childViewControllers" options:NSKeyValueObservingOptionNew context:nil];

-(NSUInteger)countOfChildViewControllers
{
    return self.childViewControllers.count;
}

但我不确定我做得对,我没有收到任何通知。我想要的是什么?

1 个答案:

答案 0 :(得分:0)

关键是所有财产的修改都必须通过符合KVO标准的方式。这与UIViewController的实现方式有关,您无法从该类外部做任何事情。使用索引集合访问器是UIViewController的实现可以实现KVO合规性的一种方式,但还有其他方法。我不知道该物业是否符合KVO标准;从你的报告,显然不是。如果底层实现不使用它们,则在类别或子类中添加getter甚至setter都无济于事。