如果数组是否保留count = 0,我们如何检查?

时间:2010-12-07 12:12:57

标签: objective-c memory-management

如果阵列在内存中,我们如何检查?

我有条件需要它

以下代码是正确的,以释放数组

if (array1)
{
[array1 release];
}

谢谢

3 个答案:

答案 0 :(得分:6)

您不应该检查Obj-C上对象的保留计数。充其量这个数字几乎不用于调试,在最坏的情况下它是非常误导的。如果您练习正确的内存管理技术,则永远不需要检查保留计数。

如果您在内存管理方面遇到问题,请发布更多代码,我们可以帮助您找出问题所在。另外,如果你还没读过,你应该这样做。

http://developer.apple.com/library/mac/ipad/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html%23//apple_ref/doc/uid/20000994-BAJHFBGH

答案 1 :(得分:0)

遗憾的是,除了retainCount之外,您需要了解有关array1的更多信息,以及它是否为nil。如果您指向在其他位置发布的对象,则调用retainCount可能会导致程序崩溃或返回完全垃圾。


[删除了我关于自动释放的评论 - 它被误导了。以上仍然是真的!]

答案 2 :(得分:-3)

如果条件正确。使用它可以检查数组是否在内存中。释放数组后,您也应该分配nil。所以它将完全从记忆中删除。

干杯, Raxit