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