所以我有有一個孩子CCSprite對象CCLayer對象,當條件發生(由更新的方法檢測)的CCSprite的方法被調用本身調用下面對象 - NSNotificationCenter錯誤訪問
[[NSNotificationCenter defaultCenter] postNotificationName:@"mymethod" object:nil];
的CCLayer然後繼續爲CCSprite刪除它運行
[node removeFromParentAndCleanup:YES];
。該CCLayer還呼籲初始化以下
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mymethod) name:@"mymethod" object:nil];
現在9次了10年,這是罰款和工作原理不過偶爾預期我得到指着通知後線bad_access。
我從閱讀其他人的猜測類似的問題是,這是因爲子對象已被刪除,但我不知道如何去做它,因爲它被刪除之前被調用。
是否有可能發生延遲後通知被調用,並最終被調用後對象被刪除或我吠叫錯誤的樹?上述
UPDATE
新增移除代碼,如果我註釋掉刪除和清理線也不會發生。
你可以在哪裏刪除孩子嗎? –
如果父類最終是一個cocos2d類,您可能需要在onExit方法中發佈。 onExit在'removeFromParent'循環期間被調用,並且在實際刪除之前執行。不要忘記[super onExit]。 – YvesLeBorg
有沒有嘗試過或「刪除」的對象,只是爲了看看它是否仍然發生? – AntonijoDev