17.2. Listening for and Reacting to Notifications
Problem
You want to react to a notification that is being sent either by your app or by the system.
Solution
Listen to a particular notification by calling the addObserver:selector:name:object: method of
the default notification center. This method has the following
parameters:
addObserverThe object that is going to observe a given notification. So if this is the current class, put
selfhere to point to the current instance of your class.selectorThe selector that will receive the notification. This selector has to have one parameter of type
NSNotification.nameThe name of the notification that you want to listen to.
objectThe object that is going to send you the notification. For instance, if a notification with the same name is being sent from two objects, you can narrow your target and only listen for the notification that comes from Object A instead of both Object A and Object B.
When you no longer want to receive notifications, issue the
removeObserver: instance method of
the NSNotificationCenter class. Make
sure that you do this because the notification center retains instances
of listener objects. You could encounter memory leaks or errors if the
notification center retains an instance of your class after it has been
released, so make sure that you remove yourself from the observers
list.
Discussion
An example can make this whole thing very easy. What we are going
to do in this example is create a class named Person and add two properties ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access