@implementation
TestClass
- (
void
) dealloc
{
// If you don't remove yourself as an observer, the Notification Center
// will continue to try and send notification objects to the deallocated
// object.
[[
NSNotificationCenter
defaultCenter
]
removeObserver
:
self
];
[
super
dealloc
];
}
- (
id
) init
{
self
= [
super
init
];
if
(!
self
)
return
nil
;
// Add this instance of TestClass as an observer of the TestNotification.
// We tell the notification center to inform us of "TestNotification"
// notifications using the receiveTestNotification: selector. By
// specifying object:nil, we tell the notification center that we are not
// interested in who posted the notification. If you provided an actual
// object rather than nil, the notification center will only notify you
// when the notification was posted by that particular object.
[[
NSNotificationCenter
defaultCenter
]
addObserver
:
self
selector
:
@selector
(receiveTestNotification:)
name
:
@"TestNotification"
object
:nil
];
return
self
;
}
- (
void
)
receiveTestNotification
:(
NSNotification
*) notification
{
// [notification name] should always be @"TestNotification"
// unless you use this method for observation of other notifications
// as well.
if
([[notification
name
]
isEqualToString
:
@"TestNotification"
])
NSLog
(
@"Successfully received the test notification!"
);
}
@end
//... somewhere else in another class ...
- (
void
) someMethod
{
// All instances of TestClass will be notified
[[
NSNotificationCenter
defaultCenter
]
postNotificationName
:
@"TestNotification"
object
:
self
];
}