There are many places that calls NotificationCenter.addObserver(forName:object:queue:using:) and discards its return value, which leads to the observer not being unregistered.
Observers not getting unregistered will cause some problems:
- The block argument will not be released, which causes some objects not being released in some cases.
- The observer code is executed at a time that you don't expect them to execute.