假设我在 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
)?
我必须在 myNames
数组上使用 [[NSArray alloc] init]
吗?或者我必须在 returnList
上使用 alloc
而不是自动释放方法?或者我可以只依赖 ARC 吗?或者有其他解决方案吗?
最佳答案
ARC 会为您处理这件事,因此您可以只依赖它并使用该阵列开展业务。如果它发现您需要保留 myNames
,它会为您添加一个保留调用,或者在您编译使用它的代码时执行它实际执行的任何其他操作。
关于objective-c - 使用 ARC 返回自动释放的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947255/