O'Reilly logo

iOS 7 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required