调用构造函数时cocos2d-X调用保留

时间:2014-03-12 08:00:08

标签: c++ cocos2d-x

当我们在对象上调用构造函数时,是否需要在对象上调用retain?我知道当我们调用init方法时,它会创建一个需要保留的自动释放对象吗?

亲切的问候,

2 个答案:

答案 0 :(得分:2)

使用CCObject

new(或子类)分配会使用引用计数器 1 创建对象。当您调用autorelease时,计数器保持 1 ,但计数器 1 的自动释放对象将在更新周期结束时销毁(应用程序初始化或当前帧)。

在一般情况下,您使用create静态方法创建对象,并且只有当我们需要将对象存储在容器外时才遵循通用规则(retain

如果使用new调用创建对象,则创建的对象已保留一次。您可以在其上调用autorelease,并遵循通用规则,或者您可以存储它,并手动调用release来销毁它。

答案 1 :(得分:0)

保留在您:

时被调用
  1. 将节点添加到另一个节点或场景
  2. 将对象添加到数组
  3. 将对象添加到词典
  4. 另一种情况,即某个对象保留了另一个对象,不应该被删除(动作,转换,运行场景等)

    当您将对象添加到数组/节点/ ...时,您不需要自己调用retain,但是当您想要保留对象而不添加到array / scene / ...时,您需要保留它