CCSpriteBatchNode не освобождается при вызове replaceScene - PullRequest
0 голосов
/ 29 ноября 2011

Похоже, что когда я вызываю replaceScene, spriteBatchNodes в моей сцене не освобождаются. Каждый раз, когда я заменяю сцену, «живой» счет увеличивается на единицу.

Каждый из объектов, хранящихся в spriteBatchNode, не является просто CCSprite - это класс, производный от CCSprite с дополнительным поведением.

Что может привести к тому, что spriteBatchNode не будет освобожден? Ни один из узлов, которые я добавил в spriteBatchNode, также не освобожден.

Я отменяю расписание всех селекторов, которые работают на узлах, которые являются частью spritebatchnode.

1 Ответ

1 голос
/ 29 ноября 2011

Скорее всего, вы встретили цикл сохранения .По крайней мере, один из узлов все еще удерживается, поэтому пакетный узел спрайта не освобождается.

Особенно часто встречается, когда вы сохраняете объекты узлов в дополнительных пользовательских коллекциях (массивах, словарях и т. Д.).Чтобы быть уверенным в том, что Cocos2D может правильно освободить свою память, вы должны освобождать эти коллекции методом -(void) cleanup, а не -(void) dealloc.

...