2011-05-14 34 views
0

我有一堆类保留场景的一个实例,我开始认为这会导致我的内存管理问题。是我的场景永远留在记忆中

所以我有Scene1,Scene2和一个HelperClass,它具有保留场景的属性。

当我从Scene1切换到Scene2时,我希望处理所有的东西。

我开始思考,但是在我叫导演改变场景之前,我将不得不手动释放助手类吗?

该辅助类由该场景的子层保留。

该图层还具有作为ccnode的场景的属性引用。

我这样做不对吗?安排这些东西的最佳方式是什么,以便内存正确释放。

帮助程序类可以执行诸如创建项目符号并将它们添加到场景中。

我有一个类似的设置与CCSprites只存在于现场级别。我在助手类中保留对它们的引用。

+0

我的一个早期想法是,所有这些帮助者类应该是CCNodes,我不应该保留属性引用任何从cocos2d我应该将ccnode添加到父类 – Mel 2011-05-14 17:40:52

回答

1

一旦你添加了一些东西到一个容器,一个场景或spritesheet或其他东西,释放它,容器保持一个引用它,然后当你处理容器时,它将被释放。 仅当您运行新场景或调用CCDirector的replaceScene方法时,才会释放场景。

+0

我做了父母和孩子之间的保留循环。答案不是保留父对象属性,而是做一个赋值。 – Mel 2011-05-18 02:38:31