假设我在A类中编写了以下代码:
-(NSArray *) returnListNames {
NSArray *returnList = [NSArray arrayWithArray:myListNames];
return (returnList);
}
在B组中,我以这种方式在某个范围内获得该列表:
{
/* Without ARC I would retain the array returned from ClassA
to guarantee its reference like this:
[[myClassA returnListNames] retain]; */
NSArray *myNames = [myClassA returnListNames];
}
考虑到returnList
是使用自动释放方法分配的,我如何保证不会丢失使用ARC的引用(我不能使用retain
)?
我必须在[[NSArray alloc] init]
数组上使用myNames
吗?或者我必须在alloc
上使用returnList
而不是自动释放方法?或者我可以依靠ARC吗?还是有另一种解决方案吗?
答案 0 :(得分:12)
ARC将为您处理此问题,因此您可以依赖它并与该阵列开展业务。如果它发现您需要保留myNames
,它会为您添加一个保留调用,或者在编译使用它的代码时执行其他任何实际操作。