This is NSNotification.h in view mode; [Download] [Up]
/* NSNotification.h Copyright 1993, 1994, NeXT, Inc. Posting and observing notifications; NeXT, June 93 */ #import <foundation/NSDictionary.h> /* Example of use: Say you have a port object that is dying and an object (observer) that needs to know about the death of that port. The observer would initially register as: [[NSNotificationCenter defaultCenter] addObserver:observer selector:@selector(handlePortDeath:) forNotificationName:@"NSPortInvalid" fromObject:port]; When a port dies, the following code gets executed: [[NSNotificationCenter defaultCenter] postNotificationName:@"NSPortInvalid" object:port]; The notification center will then perform: - (void)handlePortDeath:(NSNotification *)notification { /* we know that [port isEqual:[notification object]]*/ ... } */ /*************** Notification ***************/ @interface NSNotification:NSObject <NSCopying> /* Note that notifications may contain extra information, but then that extra data must be agreed upon between notifiers and observers */ - (NSString *)notificationName; /* A string denoting the notification such as "NSPPLChanged" or "NSPortInvalid" */ - notificationObject; /* The object of the notification; often is the object that posted a notification about itself; may be nil */ + allocWithZone:(NSZone *)zone; /* Creates an instance of a concrete class (substitutes a concrete class if called with NSNotification) */ + (NSNotification *)notificationWithName:(NSString *)name object:object; /* copies name; retains object */ @end /*************** Notification Center ***************/ @interface NSNotificationCenter:NSObject { id _lock; NSMutableDictionary *_registry; id _noNotificationNameRegistry; } + (NSNotificationCenter *)defaultCenter; /* a per-task notification center used for generic notifications */ - (void)postNotification:(NSNotification *)notification; - (void)addObserver:observer selector:(SEL)selector notificationName:(NSString *)notificationName object:object; /* observer will perform selector with the notification as argument when notification with given name from given object is posted; observer is not retained which implies that removeObserver: must be called prior to invalidating the observer; If object is nil, observer will get posted whatever the object was; object (when non-nil) is not retained by the notification center which implies that removeObserver: must be called prior to invalidating the object; object identity is pointer equality; If notificationName is nil, observer will get posted whatever for all notifications that match object */ - (void)removeObserver:observer notificationName:(NSString *)notificationName object:object; /* This method will remove all observers with same notificationName and same object (even when object is nil) */ - (void)removeObserver:observer; /* Removes all the observations of observer; Relativly slow (goes over all tables) */ - (void)postNotificationName:(NSString *)notificationName object:object; /* Short cut for posting an notification */ @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.