после стольких чтений, я вижу, что так много недоразумений по поводу того, что я должен делать при замене сцены.
на методе dealloc, я должен выпустить ВСЕ мои таймеры ?? или cocos2d это делает ??
У меня 3 таймера при запуске:
[self schedule: @selector(contact:)];
[self schedule:@selector(tick:)];
[self schedule: @selector(randomsActions:) interval:0.1];
перед тем, как заменить сцену на меню (replaceScene), я делаю это:
[self unschedule:@selector(randomsActions:)] ; //stop timer
[self unschedule:@selector(contact:)] ; //stop timer
[self unschedule:@selector(contact:)] ; //stop timer
но он падает. (Я видел, как люди говорили, что мне не нужно их отменять?)
, поэтому я попробовал это в моем dealloc :
[[CCScheduler sharedScheduler] unscheduleAllSelectorsForTarget: self];
, который также приводит к сбою во второй раз (происходит сбой в классе: CCScheduler.m)
в моем dealloc я также добавил это :( НУЖНО ЛИ ???)
delete _contactListener;
[self removeAllChildrenWithCleanup:
ДА];
удалить мир;
world = NULL;
[super dealloc];
что здесь происходит?
Может ли кто-нибудь дать мне представление о том, что следует делать в dealloc при замене сцен?
что мне делать с моими таймерами ???
спасибо.