Mam więc obiekt CCLayer który posiada obiekt CCSprite dziecko, gdy warunek dzieje (wykryty metodą update) sposobu według CCSprite nazywa która sama wywołuje następująceObj-C NSNotificationCenter Bad Dostęp
[[NSNotificationCenter defaultCenter] postNotificationName:@"mymethod" object:nil];
CCLayer następnie przechodzi do uruchomienia
[node removeFromParentAndCleanup:YES];
dla CCSprite aby ją usunąć. CCLayer nazywany również na metody init
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mymethod) name:@"mymethod" object:nil];
Teraz 9 razy na 10 to jest w porządku i działa zgodnie z oczekiwaniami, jednak od czasu do czasu dostaję bad_access skierowaną do linii zgłoszenie postu.
Domyślam czytając o innych ludzi mających podobneproblemów jest to, że to dlatego, że obiekt dziecko zostało usunięte, ale nie wiem jak inaczej to zrobić, jak jest nazywany, zanim zostanie usunięte.
Czy coś może się zdarzyć, aby opóźnić wywoływanie powiadomienia i kończy się ono wywoływane po usunięciu obiektu, czy też szczerzę złe drzewo?
UPDATE
Dodany kod usunięcie wyżej, jeśli I ustosunkowania się linię usunąć i oczyszczania nie stało.
Czy możesz opublikować kod, w którym usuwasz dziecko? –
możesz chcieć opublikować w metodzie onExit, jeśli klasa nadrzędna ostatecznie jest klasą cocos2d. onExit jest wywoływany podczas cyklu "removeFromParent" i jest wykonywany przed faktycznym usunięciem. Nie zapomnij o [super onExit]. – YvesLeBorg
Czy próbowałeś, czy nie "usunięto" obiektu, aby sprawdzić, czy nadal się dzieje? – AntonijoDev