UIViewController上的KVO childViewControllers数组

Sno*_*man 5 iphone objective-c ios

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

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

-(NSUInteger)countOfChildViewControllers
{
    return self.childViewControllers.count;
}
Run Code Online (Sandbox Code Playgroud)

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

Ken*_*ses 0

重点是所有属性的修改都必须通过符合 KVO 的方式。这与如何实现有关UIViewController,您在该类之外无能为力。使用索引集合访问器是实现 KVO 合规性的一种方法UIViewController,但还有其他方法。我不知道该属性是否符合 KVO 标准;从你的报告来看,显然不是。如果底层实现不使用它们,那么在类别或子类中添加 getter 甚至 setter 并没有什么帮助。