我有一个UITableView,其中包含存储在数组中的NewsItem对象的数据源。在我的NewsItem对象中,有一个我要跟踪的名为“ imageState”的BOOL。我想使用KVO,以便当此imageState的值更改时,将通知具有NewsItem数组的UIViewController,然后它将执行一些操作(即:重新加载单元格或其他内容)。我该怎么做?首先可行吗?

最佳答案

您可以像这样在TableViewController中添加观察者

[self addObserver:newsItemObject  forKeyPath:@"imageState" options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) context:nil];


它会观察对象,并且当它更改时将调用此方法,您应该在下面实现此方法:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
 NSLog(@"%@ \n %@ \n %@ \n ",keyPath,object,change);
 // do your things
}


如果NewsItem类是您的类,我认为最好使用Delegate或Notification。 KVO不是更好的方法。

关于iphone - 数据源中的KVO问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14371370/

10-10 18:44