我发布了多少次分配或保留的对象?

abh*_*nav 6 iphone memory-management retain cocos2d-iphone retaincount

我正在制作iPhone游戏.我想释放已分配或保留的所有对象.在dealloc我发布所有这些对象的函数中,但后来我意识到有时候我还没有分配对象时最终释放对象.所以我想retainCount在发布它之前我需要检查它是否大于零.

我的问题是:

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

if([bg retainCount]!=0)
{
  [bg release];
}
Run Code Online (Sandbox Code Playgroud)

要么

我应该多次发布它 retainCount

while([bg retainCount]!=0)
{
  [bg release];
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

bbu*_*bum 77

不要使用-retainCount.

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

您应该调用release与保留对象完全相同的次数.不会少(除非你喜欢泄漏),当然,没有更多(除非你喜欢崩溃).

有关完整详细信息,请参阅内存管理指南

  • 你应该在某处纹身. (10认同)
  • @bbum:rdar:// 8122368(http://openradar.appspot.com/8122368对于我们所有的非苹果人) (4认同)