Предположим, что я написал приведенный ниже код в классе 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
был выделен с помощью метода autorelease, как я могу гарантировать, что я не потеряю ссылку на него, используя ARC (при котором я не могу использовать retain
)?
Придется ли мне использовать [[NSArray alloc] init]
на массиве myNames
? Или я должен использовать alloc
на returnList
вместо метода автоматического освобождения? Или я могу просто положиться на ARC? Или есть другое решение?