Suponiendo que escribí el código de abajo en una clase A:que vuelven objetos autoreleased utilizando ARC
-(NSArray *) returnListNames {
NSArray *returnList = [NSArray arrayWithArray:myListNames];
return (returnList);
}
Y en una clase de BI conseguir esa lista en un cierto margen de esta manera:
{
/* Without ARC I would retain the array returned from ClassA
to guarantee its reference like this:
[[myClassA returnListNames] retain]; */
NSArray *myNames = [myClassA returnListNames];
}
Teniendo en cuenta que el returnList
se asignó usando un método de liberación automática, ¿cómo puedo garantizar que no perderé la referencia al mismo usando ARC (bajo el cual no puedo usar retain
)? ¿Tendré que usar [[NSArray alloc] init]
en la matriz myNames
? ¿O debo usar alloc
en returnList
en lugar de un método de liberación automática? ¿O puedo simplemente confiar en ARC? ¿O hay otra solución?
Así que puedo seguir utilizando un método de liberación automática al asignar * returnList que ARC garantizará su existencia. ¿Derecha? –
Eso es correcto. Ni siquiera importa si usa un método de liberación automática o un alloc-init. – BoltClock
@BoltClock cuando se lanza el objeto en este caso? – Yadnesh