我以为当main.m中的autorelease池被耗尽时,将会释放由NSMutableDictionary dictionaryWithCapacity:
返回的对象。相反,当我将它分配给-init中的一个实例成员时,我发现该对象只会持续-init调用。生命周期[NSMutableDictionary dictionaryWithCapacity:n]
什么是管理由NSMutableDictionary dictionaryWithCapacity:
返回的对象的发布?为了进一步神秘化这里发生了什么,我发现当我将一个由便利构造函数创建的自定义类的对象赋给init中的实例成员时,该实例在(例如)touchBegan中仍然“活着” :...
好吧,这对我来说是有意义的,除了我自己的类返回的autorelease对象被返回后,便捷构造函数似乎不会以相同的方式释放。 – james 2010-10-07 23:27:27
@james:你什么时候[autorelease]他们?因为如果你在你的游泳池是堆栈中唯一的游泳池时[自动释放]它们,那么它就会进入游泳池。 ([autorelease]所做的就是将该项目添加到当前堆栈池的事物列表中,以便在清除时排除) – 2010-10-07 23:30:40
@james:如果您想知道为什么您的方法以某种方式行事,我们需要看看它们的使用方法和可能的背景。 – Chuck 2010-10-07 23:49:24