【问题标题】:When does retain count for an autoreleased object decrement?自动释放对象递减的保留计数何时减少?
【发布时间】:2011-02-09 23:16:17
【问题描述】:

如果我有一个自动释放的对象,它的保留计数(即我在其上调用方法 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 有一个 retain 属性,所以这是有意义的),并且在退出此方法后,来自外部的调用同样返回 2。

【问题讨论】:

    标签: objective-c retain autorelease


    【解决方案1】:

    Don't look at retainCount。这是误导。只要你关注Memory Management Programming Guide就可以了。

    如果您将问题改写为“默认自动释放池何时耗尽?”那么答案就是控制流返回到runloop的时候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-21
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 2016-09-05
      • 1970-01-01
      • 2011-03-01
      相关资源
      最近更新 更多