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:
addObserver
The object that is going to observe a given notification. So if this is the current class, put
self
here to point to the current instance of your class.selector
The selector that will receive the notification. This selector has to have one parameter of type
NSNotification
.name
The name of the notification that you want to listen to.
object
The 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 ...
Get iOS 7 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.