Cocoa provides your app with a single instance of NSNotificationCenter, informally called the notification center. This instance is the basis of a mechanism for sending messages called notifications. A notification includes an instance of NSNotification (a notification object). The idea is that any object can be registered with the notification center to receive certain notifications. Another object can hand the notification center a notification object to send out (this is called posting the notification). The notification center will then send that notification object, in a notification, to all objects that are registered to receive it.
The notification mechanism is often described as a dispatching or broadcasting mechanism, and with good reason. It lets an object send a message without knowing or caring what object or how many objects receive it. This relieves your app’s architecture from the formal responsibility of somehow hooking up instances just so a message can pass from one to the other. When objects are conceptually “distant” from one another, notifications can be a fairly lightweight way of permitting one to message the other.
An NSNotification object has three pieces of information associated with it, which can be retrieved by instance methods: its
name, an NSString which identifies it; an
object associated with the notification (typically the object that posted it); and its
userInfo. Not every notification has a
userInfo; it is an NSDictionary, and can ...