NSNotificationCenter 用法

jopen 9年前發布 | 4K 次閱讀 Objective-C

一個簡單的使用 NSNotificationCenter 的代碼例子

@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];
    
    }</pre>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!