cocos2D освобождение CCScheduler - PullRequest
       6

cocos2D освобождение CCScheduler

0 голосов
/ 18 января 2012

Эта проблема начала возникать, когда я создал подкласс CCSprite (Entity) для получения сенсорного ввода. Когда я ухожу от главной сцены, нажимая на другую, я заставляю все сущности удалить свое делегирование из общего CCTouchDispatcher (то есть onExit ()). И затем повторно активировать, когда основная сцена возвращается (onEnterTransistionFinished ()).

В половине случаев это работает нормально. Однако в других случаях это происходит:

cocos2d: deallocing <CCScheduler: 0x2323a0>

Что я нахожу довольно странным. Можно ли предположить, что причиной проблемы являются делегаты Touch? Или это связано с памятью?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Если я правильно помню, проблема возникла из-за попытки дважды зарегистрировать / отменить регистрацию одного и того же объекта в / из TouchDispatcher (т.е. у него не было времени отменить регистрацию / регистрацию, прежде чем я попытался зарегистрировать / отменить повторную регистрацию).

Я решил это, добавив немного BOOL _didRegisterWithTouchDispatcher, чтобы избежать подобных действий.

0 голосов
/ 18 января 2012

Возможно, вы выдаете [[CCScheduler sharedScheduler] release]? Если это так, не делайте этого.

CCScheduler - это синглтон. Оно никогда не должно освобождаться само по себе.

...