0

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

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 に答える