在 往CCLayer裡面加 Notification通知的時候,一定要加在OnEnter和OnExit裡面

來源:互聯網
上載者:User

    在 往CCLayer裡面加  Notification通知的時候,一定要加在OnEnter和OnExit裡面,不要加在init和 dealloc上面,因為

很多時候CCLayer是通過node方法產生的,在切換layer的時候,dealloc不一定會調用,這樣會導致一個layer多次註冊一個通知,這樣導致,如果發送一個通知,會多次調用通知響應函數,導致問題,切記。


   例子代碼如下:


   

-(void)  onEnter{    //註冊新玩家讀取通知    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onReloadPlayerVec:) name:Str_NSNotification_FetchPlayerChairInfo object:nil];        //註冊新使用者基本資料通知    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onNewUserBasicInfo:) name:Str_NSNotification_NewUserBasicInfo object:nil];            //註冊新使用者其他資料通知    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onNewUserOtherInfo:) name:Str_NSNotification_NewUserOtherInfo object:nil];            //註冊玩家退出當前桌子的通知    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPlayerExitTable:) name:Str_NSNotification_PlayerExitTable object:nil];        //註冊 公聊  訊息  通知    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onPublicMsg:) name:Str_NSNotification_PublicMsg object:nil];                [super  onEnter];}- (void)  onExit{    [[NSNotificationCenter defaultCenter] removeObserver:self name:Str_NSNotification_FetchPlayerChairInfo object:nil];        [[NSNotificationCenter defaultCenter] removeObserver:self name:Str_NSNotification_NewUserBasicInfo object:nil];        [[NSNotificationCenter defaultCenter] removeObserver:self name:Str_NSNotification_NewUserOtherInfo object:nil];        [[NSNotificationCenter defaultCenter] removeObserver:self name:Str_NSNotification_PlayerExitTable object:nil];        [[NSNotificationCenter defaultCenter] removeObserver:self name:Str_NSNotification_PublicMsg object:nil];                [self  clearUp];        [super  onExit];}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.