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

我的问题是:

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

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

或者

我应该将它发布多少次作为retainCount
while([bg retainCount]!=0)
{
  [bg release];
}

谢谢你的帮助!

最佳答案

不要使用-retainCount。

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

您应调用release使其与保留对象的次数完全相同。不会(除非您喜欢泄漏),并且当然也不会(除非您喜欢崩溃)。

有关完整的详细信息,请参见Memory Management Guidelines

10-05 18:34