Iphone 我的场景会永远留在记忆中吗

Iphone 我的场景会永远留在记忆中吗,iphone,objective-c,cocos2d-iphone,Iphone,Objective C,Cocos2d Iphone,我有很多类保留了场景的一个实例,我开始认为这会给我带来内存管理问题 所以我有Scene1、Scene2和一个HelperClass,它有一个保留场景的属性 当我从场景1切换到场景2时,我希望所有东西都被处理掉 我开始思考,在我调用导演更改场景之前,我是否必须手动释放helper类 辅助对象类由作为场景子对象的层保留 该层还具有作为ccnode对场景的特性引用 我做错了吗?安排这些事情以便正确释放内存的最佳方式是什么 助手类执行创建项目符号并将其添加到场景中等操作 我有一个类似的CCSprites

我有很多类保留了场景的一个实例,我开始认为这会给我带来内存管理问题

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

当我从场景1切换到场景2时,我希望所有东西都被处理掉

我开始思考,在我调用导演更改场景之前,我是否必须手动释放helper类

辅助对象类由作为场景子对象的层保留

该层还具有作为ccnode对场景的特性引用

我做错了吗?安排这些事情以便正确释放内存的最佳方式是什么

助手类执行创建项目符号并将其添加到场景中等操作


我有一个类似的CCSprites设置,它只存在于场景级别。我在helper类中保留对它们的引用。

一旦您向容器、场景或spritesheet或其他内容添加了内容,释放它,容器将保留对它的引用,然后当您处置容器时,它将被释放。
如果调用“推送场景”,则不会释放场景,只有当您运行一个新的或调用CCDirector的replaceSecene方法时。

我早期的想法之一是,所有这些帮助器类都应该是CCNodes,我不应该保留对cocos2d中任何内容的属性引用,而是应该将ccnode添加到父类中。我在父类和子类之间做了一个保留循环。答案不是保留父对象属性,而是执行赋值。