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

Joe*_*oey 1 objective-c autorelease retain

如果我有一个自动释放的对象,它的保留计数何时(即当我调用方法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]);
Run Code Online (Sandbox Code Playgroud)

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

Lil*_*ard 5

不要看retainCount.这是误导.只要你按照内存管理编程指南,那么你会没事的.

如果你改写你的问题,说"默认的自动释放池什么时候流失?" 然后答案是当控制流程返回到runloop时.