クラスがカスタムクラスの場合、通知を送信した後、オブザーバに対応するセレクタが2回呼び出されます。セレクタが1回だけ呼び出されるように、より良い解決策はありますか?なぜNSNotificationのObserverが2回呼び出されましたか?
5
A
答えて
3
オブザーバークラスは、名前で通知されますが、特定のオブジェクトに対しては通知されない場合、発信オブジェクトに関係なく、通知が発生するたびに呼び出されるため、複数のメッセージを受信します。
同様に、オブザーバが特定のオブジェクトに対して登録され、名前付き通知に対して登録されていない場合、そのオブジェクトに関する通知があるたびにメッセージが送信されます。
1-でaddObserver登録クラス: -
遠い状態の変化が通知されるための代替メカニズム、キー値が観測された私のために働いた何http://developer.apple.com/documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html
8
セレクタが2回呼び出された場合は、おそらくそのセレクタを2回登録したことになります。
1
は物事のカップルでした特定のオブジェクトを追加することでした。
2 - postNotification呼び出しが行われたクラスで、同じタイプのオブジェクトです。
また、私のpostNotificaitonもdispatchAsync呼び出しで行いますが、それはあなたの問題とは関係ありません。
0
addObserverが1回だけ設定されているかどうかを確認してください。私の場合、addObserverループは2回実行されたので、バグです。
関連する問題
- 1. なぜペイントメソッドが2回呼び出されたのですか?
- 2. NSNotificationのオブザーバ(itemDidFinishPlaying)2回呼び出されるランダムに
- 3. なぜこのコンストラクタが2回呼び出されますか?
- 4. NSNotificationセレクタメソッドが呼び出されない
- 5. なぜ、RangeBeaconsInRegionが複数回呼び出されましたか?
- 6. なぜonCreateが複数回呼び出されましたか?
- 7. Observerを2回呼び出さないようにする
- 8. なぜ私のエフェクトは2回呼び出されますか?
- 9. Observerメソッドが2回呼び出されないようにする
- 10. NSOutlineView:shouldEditTableColumn:なぜ2回呼び出されますか?
- 11. IClassifierProviderのGetClassifier()が2回呼び出されましたか?
- 12. SKPayments完全なトランザクションが2回呼び出されました
- 13. なぜDispatch Group Notify getは2回呼び出されましたか?
- 14. PrintStream.close()はなぜ2回呼び出されるのですか?
- 15. なぜ2回呼び出されるのですか?
- 16. didRegisterUserNotificationSettingsが2回呼び出されましたか?
- 17. jQuery:.load()が2回呼び出されましたか?
- 18. didRegisterForRemoteNotificationsWithDeviceTokenが2回呼び出されましたか?
- 19. UISwipeGestureRecognizerが2回呼び出されましたか?
- 20. React/Redux:状態が2回呼び出されましたか?
- 21. C#デリゲートが2回呼び出されましたか?
- 22. SwingWorker done()が2回呼び出されましたか?
- 23. メソッドが2回呼び出されたのはなぜですか?
- 24. MVVMでSelectionChangedのリストボックスコマンドが2回呼び出されました
- 25. Androidフラグメントのライフサイクル:onResumeが2回呼び出されました
- 26. UIPageViewController最初のスワイプが2回呼び出されました
- 27. DotnetCore:カスタムフィルタのOnExceptionメソッドが2回呼び出されました
- 28. Yii2:コントローラのactionView()が2回呼び出されました
- 29. なぜtextedit検証ハンドラが2回呼び出されますか?
- 30. mvcで1回のアクションが2回呼び出されましたか?
問題は、ペン先に2つのコントロールがあり、同じクラスにカスタマイズされていることです。オブザーバはそのクラスのawakeFromNib()に登録されているため、セレクタは1つのpostNotificationに対して2回も呼び出されます。 :( –