2009-08-25 12 views

答えて

3

オブザーバークラスは、名前で通知されますが、特定のオブジェクトに対しては通知されない場合、発信オブジェクトに関係なく、通知が発生するたびに呼び出されるため、複数のメッセージを受信します。

同様に、オブザーバが特定のオブジェクトに対して登録され、名前付き通知に対して登録されていない場合、そのオブジェクトに関する通知があるたびにメッセージが送信されます。

1-でaddObserver登録クラス: -

遠い状態の変化が通知されるための代替メカニズム、キー値が観測された私のために働いた何http://developer.apple.com/documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html

8

セレクタが2回呼び出された場合は、おそらくそのセレクタを2回登録したことになります。

+0

問題は、ペン先に2つのコントロールがあり、同じクラスにカスタマイズされていることです。オブザーバはそのクラスのawakeFromNib()に登録されているため、セレクタは1つのpostNotificationに対して2回も呼び出されます。 :( –

1

は物事のカップルでした特定のオブジェクトを追加することでした。

2 - postNotification呼び出しが行われたクラスで、同じタイプのオブジェクトです。

また、私のpostNotificaitonもdispatchAsync呼び出しで行いますが、それはあなたの問題とは関係ありません。

0

addObserverが1回だけ設定されているかどうかを確認してください。私の場合、addObserverループは2回実行されたので、バグです。

関連する問題