Возврат автовыделенных объектов с помощью ARC

Предположим, что я написал приведенный ниже код в классе 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? Или есть другое решение?

8
задан Josh Caswell 30 October 2011 в 20:01
поделиться