什么时候保留计数自动释放的对象减少?

时间:2011-02-09 23:16:18

标签: objective-c retain autorelease

如果我有一个自动释放的对象,它的保留计数何时(即当我调用方法retainCount时返回的值)会减少?我认为它是在对象分配的方法范围内结束时,但我的测试并没有表明这一点。我有以下代码:

int itemIndex = 0;
NSArray* items = [mResponse componentsSeparatedByString:@","];  
self.mText = (NSString*)[items objectAtIndex:itemIndex++];
self.mText = [mText gtm_stringByUnescapingFromURLArgument];
NSLog(@"retain count: %d",[mText retainCount]);

这为计数返回2(mText有一个保留属性,这是有意义的),退出此方法后,来自外部的调用同样返回2.

1 个答案:

答案 0 :(得分:5)

Don't look at retainCount。这是误导。只要你按照Memory Management Programming Guide那么你就没事了。

如果您将问题改为“默认自动释放池何时耗尽?”然后答案是当控制流返回到runloop时。