Удаление Cocos2D CClayer с плохим доступом - PullRequest
0 голосов
/ 03 августа 2011

Мне нужно освободить мой слой в функции обновления. Я вызываю функцию finishGame.

-(void)finishGame{
    [[CCDirector sharedDirector] pause];
    [layerRoot removeFromParentAndCleanup:YES];
    [layerRoot autorelease];
    layerRoot=nil;
}

Но затем я получил уведомление о плохом доступе

// updates with priority == 0
    DL_FOREACH_SAFE( updates0, entry, tmp ) {
        if( ! entry->paused )
            entry->impMethod( entry->target, updateSelector, dt ); //<<< In this string.
    }

или возврат 0; 0_о Это очень странно. Потому что программа не может быть завершена.

Что я не прав?

Большое спасибо.

1 Ответ

0 голосов
/ 16 августа 2011

[obj removeFromParentAndCleanup: YES] освобождает рассматриваемый объект.Вы не должны вызывать что-либо для объекта после вызова этого метода, если только вы не укажете NO.Однако вы все равно можете установить его на ноль, это просто хорошая практика кодирования в Objective-C.

Также: если вы правильно подклассифицируете CCNode, они все равно будут автоматически освобождены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...