2012-01-26 10 views
1

iOSアプリケーションでKVOを使用して、オブジェクトのプロパティが変更されたときにviewControllerに通知しています。 addObserverを実行すると、options:NSKeyValueObservingOptionNewと指定します。Objective-c KVO:オブジェクト対変更辞書

observeValueForKeyPathでは、オブジェクトの値を observeValueForKeyPathに渡すという2つの方法でプロパティの値を取得できます。同じメソッドに渡された NSDictionaryから

更新されたプロパティの値を取得するこれら2つの方法は、常に同じ結果を返しますか?

私はaddObserverオプションとしてNSKeyValueObservingOptionNewを指定しています。 Apple's docsからNSKeyValueObservingOptionInitialと指定すると音が違う可能性があります。

答えて

1

一般的なケースでは、これらのオブジェクトは同じである必要がありますが、そうでないシナリオを考案することは可能です(つまり、すべての呼び出しで新しい値を生成するカスタムゲッター、 。)NSKeyValueObservingOptionInitialは、その辞書の内容には関係しません。オブザーバを追加した後、最初の値の変更を待つのに対して、オブザーバにすぐに通知するかどうかを決定します。これは、オブザーバ内のある状態が「プライミング」されている必要がある場合に便利です。

関連する問題