如果我有一个自动释放的对象,它的保留计数何时(即当我调用方法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.
答案 0 :(得分:5)
Don't look at retainCount。这是误导。只要你按照Memory Management Programming Guide那么你就没事了。
如果您将问题改为“默认自动释放池何时耗尽?”然后答案是当控制流返回到runloop时。