Scenario-我有一个返回从一个NSMutableArray类似于下面的代码已被简化检索的对象的方法(假设“myArray的”和“CURRENTINDEX”是用于类IVARS其中此方法驻留):通过objectAtIndex返回从NSMutableArray检索的对象 - autorelease必要?
- (MyObject *)getFromArray
{
return [myArray objectAtIndex:currentIndex];
}
我是否应该像对待autorelease这样的调用?
- (MyObject *)getFromArray
{
return [[myArray objectAtIndex:currentIndex] autorelease];
}
我知道,自动释放由数组返回表示对象调用的对象,但我的理解是,自动释放对象仅适用于调用者的范围,持续时间,在这种情况下,该方法以上。那么,如何确定所讨论的对象对于我的方法的调用者是否有效,是否会纠正autorelease(如上面的第二个代码段所示)?只是试图确保我对autorelease的工作原理和理解是正确的。
谢谢!
+1击败我6秒! ':)' – 2011-04-21 23:32:15
感谢您的澄清。我只是想发布我的代码存在问题,因为我的(坏)关于autorelease的假设! – dreyln 2011-04-21 23:37:53
作为后续,我安全地返回从数组中检索到的对象呢?它不会超出范围,并且对getFromArray的调用者使用不安全吗? – dreyln 2011-04-21 23:41:43