LoginSignup
0
0

More than 1 year has passed since last update.

オブザーバパターンでのイベント通知が受け取れない時にまず確認すること

Posted at

はじめに

NotificationCenterを使用したオブザーバパターンでのイベント通知を実装したのにオブザーバに設定したメソッドが呼ばれない!そんな時にまず確認したいことを記事にしました。

環境

・Swift 5.5.2
・Xcode 13.3.1

やること

個人開発では全てのコードを自分が書いており、どこに何を書いてるかをある程度把握できていると思うのでこのようなことが起こる確率は低いと思いますが、チーム開発などでいろんな人がコードを書き込んでいるプロジェクトでは比較的起こりやすいのかな思いました。僕は起こりました。

確認事項

・command + Fで検索ウインドウを開きremoveObserverを検索してみる
NotificationCenter.default.removeObserver(self) <- 解除処理

数十分ほど悩んでいたところ、まさかなと思いながら検索するとそのまさかでした。
通知を登録した直後に登録を解除されておりメソッドが呼ばれないということが起きてました。
ちなみに、iOS 9.0・macOS 10.11以降では解除処理が必須ではなくなりました。
https://developer.apple.com/documentation/foundation/nsnotificationcenter/1415360-addobserver

もし同じ現象に陥った方は是非試してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0