配列に格納されているNewsItemオブジェクトのデータソースを含むUITableViewがあります。NewsItemオブジェクトには、追跡したい「imageState」というBOOLがあります。このimageStateの値が変更されたときに、NewsItem配列を持つUIViewControllerに通知され、それがいくつかの処理(つまり、セルの再読み込みなど)を実行するようにKVOを使用したかったのです。どうすればこのようなことができますか?まず第一にそれは実行可能ですか?
質問する
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 に答える