# NSNotificationCenter class reference

mccallum@gnu.ai.mit.edu
rfm@gnu.org
richard@brainstorm.co.uk
1996,1999 Free Software Foundation, Inc.
Software documentation for the NSNotification class
Foundation/NSNotification.h
NSCopying
NSCoding

Represents a notification for posting to an NSNotificationCenter. Consists of a name, an object, and an optional dictionary. The notification center will check for observers registered to receive either notifications with the name, the object, or both and pass the notification instance on to them.

This class is actually the interface for a class cluster, so instances will be of a (private) subclass.

notificationWithName:
name
object:
object
Create a new autoreleased notification by calling +notificationWithName:object:userInfo: with a `nil` user info argument.
notificationWithName:
name
object:
object
userInfo:
info
Create a new autoreleased notification.
name
Returns the notification name.
object
Returns the notification object.
userInfo
Returns the notification user information.
Software documentation for the NSNotificationCenter class
Foundation/NSNotification.h

GNUstep provides a framework for sending messages between objects within a process called notifications. Objects register with an `NSNotificationCenter` to be informed whenever other objects post NSNotification s to it matching certain criteria. The notification center processes notifications synchronously -- that is, control is only returned to the notification poster once every recipient of the notification has received it and processed it. Asynchronous processing is possible using an NSNotificationQueue.

Obtain an instance using the +defaultCenter method.

In a multithreaded process, notifications are always sent on the thread that they are posted from.

Use the NSDistributedNotificationCenterfor interprocess communications on the same machine.

defaultCenter
Returns the default notification center being used for this task (process). This is used for all notifications posted by the Base library unless otherwise noted.
addObserver:
observer
selector:
selector
name:
name
object:
object

Registers observer to receive notifications with the name notificationName and/or containing object (one or both of these two must be non-nil; `nil` acts like a wildcard). When a notification of name name containing object is posted, observer receives a selector message with this notification as the argument. The notification center waits for the observer to finish processing the message, then informs the next registree matching the notification, and after all of this is done, control returns to the poster of the notification. Therefore the processing in the selector implementation should be short.

The notification center does not retain observer or object. Therefore, you should always send removeObserver: or removeObserver:name:object: to the notification center before releasing these objects.

NB. For MacOS-X compatibility, adding an observer multiple times will register it to receive multiple copies of any matching notification, however removing an observer will remove all of the multiple registrations.

addObserverForName:
name
object:
object
queue:
queue
usingBlock:
block

Returns a new observer added to the notification center, in order to observe the given notification name posted by an object or any object (if the object argument is `nil`).

For the name and object arguments, the constraints and behavior described in -addObserver:name:selector:object: remain valid.

For each notification received by the center, the observer will execute the notification block. If the queue is not `nil`, the notification block is wrapped in a NSOperation and scheduled in the queue, otherwise the block is executed immediately in the posting thread.

postNotification:
notification
Posts notification to all the observers that match its NAME and OBJECT.
The GNUstep implementation calls -postNotificationName:object:userInfo: to perform the actual posting.
postNotificationName:
name
object:
object
Creates and posts a notification using the -postNotificationName:object:userInfo: passing a `nil` user info argument.
postNotificationName:
name
object:
object
userInfo:
info
The preferred method for posting a notification.
For performance reasons, we don't wrap an exception handler round every message sent to an observer. This means that, if one observer raises an exception, later observers in the lists will not get the notification.
removeObserver:
observer
Deregisters observer from all notifications. This should be called before the observer is deallocated.
removeObserver:
observer
name:
name
object:
object
Deregisters observer for notifications matching name and/or object. If either or both is `nil`, they act like wildcards. The observer may still remain registered for other notifications; use -removeObserver: to remove it from all. If observer is `nil`, the effect is to remove all registrees for the specified notifications, unless both observer and name are `nil`, in which case nothing is done.