iphone - 我要释放多少次已分配或保留的对象?

标签 iphone memory-management cocos2d-iphone retain retaincount

我正在制作一款 iPhone 游戏。我想释放所有已分配或保留的对象。在dealloc函数中,我释放了所有此类对象,但后来我意识到,有时我最终会在对象尚未分配时释放它们。所以我想在释放它之前我需要检查它的 retainCount 是否大于零。

我的问题是:

我是否只检查retainCount是否大于零然后释放它?

if([bg retainCount]!=0)
{
  [bg release];
}

我应该释放它的次数与它的retainCount一样多吗

while([bg retainCount]!=0)
{
  [bg release];
}

感谢您的帮助!

最佳答案

不要使用-retainCount。

对象的绝对保留计数是没有意义的。

您应该调用 release 的次数与导致对象被保留的次数完全相同。不能少(除非您喜欢泄漏),当然也不能多(除非您喜欢崩溃)。

请参阅Memory Management Guidelines了解完整详细信息。

关于iphone - 我要释放多少次已分配或保留的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3730804/

相关文章:

java - 有没有在没有内存开销的情况下在 Java 中存储位?

cocos2d-iphone - cocos2d 粒子系统自动删除

ios - 如何卸载cocos2d模板?

iphone - Typedef 枚举设置和访问

iphone - SQLite。不能添加超过 1000 行

iphone - NSTimer - 创建了多个实例

iphone - 是否有任何支持擦洗和 2x 的 iPhone 音频框架?

ipad - 带有许多 UIImageViews 的 UIScrollView - 内存管理

python - 当作为参数传递时,如何跨多个自定义函数处理 Pandas DataFrame?

iphone - 如何在 Cocos2D 中滚动标签上的字符?