我正在制作iPhone游戏。我想释放所有已分配或保留的对象。在dealloc
函数中,我释放了所有此类对象,但是后来我意识到,有时我最终会在尚未分配对象时就释放它们。因此,我认为在发布它之前,需要检查其retainCount
是否大于零。
我的问题是:
我是否只检查retainCount
是否大于零然后释放它?
if([bg retainCount]!=0)
{
[bg release];
}
或者
我应该将它发布多少次作为
retainCount
吗while([bg retainCount]!=0)
{
[bg release];
}
谢谢你的帮助!
最佳答案
不要使用-retainCount。
一个对象的绝对保留数是没有意义的。
您应调用release
使其与保留对象的次数完全相同。不会(除非您喜欢泄漏),并且当然也不会(除非您喜欢崩溃)。
有关完整的详细信息,请参见Memory Management Guidelines。