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.