Моя сцена навсегда останется в памяти? - PullRequest
0 голосов
/ 14 мая 2011

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

Итак, у меня есть Scene1, Scene2 и HelperClass, у которых есть свойство, которое сохраняет сцену.

Когда я переключаюсь с Scene1 на Scene2, я хочу, чтобы все было утилизировано.

Я начал думать, хотя мне придется вручную освобождать класс помощника, прежде чем я вызову режиссера, чтобы изменить сцену?

Вспомогательный класс сохраняется слоем, который является дочерним по отношению к сцене.

Слой также имеет свойство ссылки на сцену как ccnode.

Я делаю это неправильно? Каков наилучший способ организовать все это так, чтобы память освободилась правильно.

Вспомогательные классы делают такие вещи, как создание пуль и добавление их в сцену.

У меня похожая настройка с CCSprites, которые существуют только на уровне сцены. Я храню ссылки на них во вспомогательных классах.

1 Ответ

1 голос
/ 15 мая 2011

как только вы добавляете что-то в контейнер, сцену или таблицу спрайтов или что-то еще, отпускаете это, контейнер сохраняет ссылку на него, затем, когда вы избавляетесь от контейнера, оно освобождается. Scene не будет освобожден, если вы вызовете push-сцену, только если вы запустите новую или вызовете метод replaceScene в CCDirector.

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