Avatar
どこかでインスタンスを保持していて、インスタンスが解放されることがないようにしているということでしょうか?
勿論あえてしている訳ではなく意図せず循環参照している場合ですね。 画面AとBがあり、画面BでaddObserverしている場合、画面A>B>A>Bのようにpushとpopを繰り返すと画面Bを表示するたびにaddObserverが走ると思います。その場合画面Aに戻った時にdeinitが走らないと通知が解除されないためpostされたら登録した回数分の処理が走ると思います。下記コードで確認すると異なるアドレスが出力されるため、登録した時のインスタンスを保持したままになっているという解釈であっているのか気になりました。 //selector @objc func didReceive() { print(ObjectIdentifier(self)) }