0

我有一个 UITableView,其中包含存储在数组中的 NewsItem 对象的数据源。在我的 NewsItem 对象中,我有一个名为“imageState”的 BOOL,我想对其进行跟踪。我想使用 KVO,这样当这个 imageState 的值发生变化时,就会通知具有 NewsItem 数组的 UIViewController,然后它会做一些事情(即:重新加载单元格或其他事情)。我该怎么做这样的事情?首先可行吗?

4

1 回答 1

1

你可以在 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 不是更好的方法。

于 2013-01-17T02:52:26.823 回答