Objective-C encourages loose coupling, and nothing in the Foundation framework better epitomizes this than the notification mechanism. Notifications are a simple way of implementing callbacks for arbitrary numbers of listeners.
You can listen for notifications with a specific name, from a specific object, or both. The notification itself has a sender, a name, and a dictionary associated with it, so objects can pass arbitrary amounts of information to things that are listening for notifications.
If you use notifications, you make it very easy to reuse your classes. Rather than expecting every class that wants to listen for events from your classes to implement a particular interface, you just post notifications. Any number of ...