就在我以为我已经完全理解了这个话题时,我又回到了基础。
我有一个实例化自动释放对象的方法,使用(例如)stringWithFormat
:
return [NSString stringWithFormat:@"what"];
然后我从另一个方法和另一个方法调用这个方法,每次都返回这个 autoreleasedNSString
并在层次结构的每个级别。代码工作正常,并且NSString
实例在层次结构的每个级别都是完整的。
我认为由于实例是自动释放的,它可能会突然retainCount
在调用堆栈中的任何点以 0 结束(即,其中一种方法将在释放的对象上工作)。我不能依赖这个对象是真的吗?
编辑:我意识到这个问题并不太清楚。对不起。我是说:
Method1 ---calls---> Method2 ---calls---> Method3 ---instantiates the string--->