Contents

NSNotification

A container for information broadcast through a notification center to all registered observers.

Declaration

class NSNotification

Overview

In Swift, this object bridges to Notification; use NSNotification when you need reference semantics or other Foundation-specific behavior.

A notification contains a name, an object, and an optional dictionary, and is broadcast to by instances of NotificationCenter or DistributedNotificationCenter. The name is a tag identifying the notification. The object is any object that the poster of the notification wants to send to observers of that notification (typically, the object posting the notification). The dictionary stores other related objects, if any. NSNotification objects are immutable.

You don’t usually create your own notifications directly, but instead call the NotificationCenter methods post(name:object:) and post(name:object:userInfo:).

Object Comparison

The objects of a notification are compared using pointer equality for local notifications. Distributed notifications use strings as their objects, and those strings are compared using isEqual(_:), because pointer equality doesn’t make sense across process boundaries.

Creating Subclasses

You can subclass NSNotification to contain information in addition to the notification name, object, and dictionary. This extra data must be agreed upon between notifiers and observers.

NotificationCenter is a class cluster with no instance variables. As such, you must subclass NSNotification and override the primitive methods name, object, and userInfo. You can choose any designated initializer you like, but be sure that your initializer does not call init on super (NSNotification is not meant to be instantiated directly, and its init method raises an exception).

Topics

Creating Notifications

Getting Notification Information

See Also

Related Documentation

  • Notification Programming Topics