0

我得到以下行作为 Xcode 中的泄漏:

someSprite = [[CCSprite alloc] initWithFile:(NSString*)obj];

我知道我在那里分配它,但我认为 Cocos2D 处理了所有的内存管理。无论如何,我应该如何正确处理那条线以防止泄漏?

我应该简单地使用自动释放还是还有更多?

谢谢!

4

2 回答 2

2

Cocos2D 不会为您处理内存。但是,我认为您可以使用自动引用计数 (ARC) 来摆脱自己处理内存的麻烦。然后你可以使用 Cocos2d 作为静态库,因为 cocos2d 不支持 ARC。

如果你想在没有 ARC 的情况下解决你的问题,只需插入一个自动释放。如果它是实例变量,请改为在您的 dealloc 方法中释放它。

于 2012-06-13T20:56:12.230 回答
1

通常,最好使用返回自动释放对象的静态构造函数。对于您的情况,它将是

[CCSprite spriteWithFile:(NSString*)obj];

当您将其添加到任何父级时,它将被保留

于 2012-06-13T21:11:10.477 回答