a likely cause is that your viewcontrollers are over-retained and not released when you think they are. This is quite common even with ARC if things are over-retained. So, you think that you have only one instance of a given viewcontroller active, whereas you actually have several live instances, and they all listen to the notifications.
Ran into this issue in an application running swift. The application got the notification once when first launched. the notification increases the number of times you go into the background and come back. i.e
app launches one - add observer gets gets called once in view will appear or view did load - notification is called once
app goes into background and comes back, add observer gets called again in view will appear or view did load. notification gets called twice.
the number increases the number of times you go into background and come back.
code in view will disappear will make no difference as the view is still in the window stack and has not been removed from it.
ou should also removeObserver:self in the view controller’s dealloc method if you are not doing that. Otherwise, the NSNotificationCenter will retain the view controller, and it never gets deallocated.
**Solution:
Apple recommends that observers should be registered in viewWillAppear: and unregistered in viewWillDissapear:**