【问题标题】:cocos 2d autorelease in an if statmentcocos2d 在 if 语句中自动释放
【发布时间】:2013-07-04 20:56:06
【问题描述】:

在我的 cocos2d 游戏中,我的一个类中有一个全局 CCLabelTTF。在初始化中,我检查另一个 int 值是正值还是负值。在我检查的 if 案例中,我初始化了 CCLabelTTF。当我初始化它时,它有一个挂起的自动释放,我读到它是在游戏循环结束时自动释放的。这是真的吗,还是有可能在其他时间自动释放它,比如一旦我超出了 if 语句的范围?

【问题讨论】:

  • 您介意发布您的代码吗?

标签: objective-c cocos2d-iphone autorelease


【解决方案1】:

自动释放的对象被添加到自动释放池 (NSAutoreleasePool) 的实例中,该实例在某个时间点被耗尽,通常在当前运行循环结束时(如果不是手动的话)。

因此,范围、方法、if 语句等的结尾不会耗尽池。 只有当池耗尽时,您的对象才会收到释放消息,因此在您的方法返回后一段时间内它仍然有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多