如果我有一个自动释放的对象,它的保留计数(即我对其调用方法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。
最佳答案
Don't look at retainCount 。这是误导性的。只要您按照Memory Management Programming Guide那你就没事了。
如果您将问题改为“默认自动释放池何时耗尽?”那么答案就是当控制流返回到运行循环时。
关于objective-c - 自动释放对象的保留计数何时递减?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4951727/