medios que suelte eso de inmediato Liberar. Autoreleasing significa que desea que la variable se libere en el siguiente grupo de autorrelease.
Utiliza la liberación automática cuando desea mantener la variable pero no desea crear una pérdida de memoria. Utiliza el lanzamiento cuando ya no necesita la variable.
muestra:
- (NSNumber *)return5 {
NSNumber * result = [[NSNumber alloc]initWitnInt: 5];
[result autorelease];
return result;
}
¿Por qué usamos autorelease allí?
Si usamos [result release] en su lugar, el resultado variable se destruirá en ese momento. Lo que significa que el valor devuelto será basura.
Si no lo lanzamos, la variable result
se mantendrá FOREVER incurriendo en pérdida de memoria.
Podemos decirle a cada persona que llama a la función para liberar el resultado, pero eso sería un dolor de cabeza y propenso a errores.
Así que utilizamos la liberación automática. Marcamos la variable que se lanzará en el siguiente grupo de autorrelease. Básicamente, marcamos la variable que se lanzará cerca de la alloc. Por lo tanto, la asignación de mantra se empareja con la liberación en la misma función que se mantiene todo el tiempo.
En realidad, hará bien cambiando todas las versiones en liberación automática. Su uso de memoria no será eficiente, sin embargo, el efecto es mínimo. Todas las variables, en todo el lenguaje de programación, se liberan automáticamente.
De todos modos, use ARC.
el enlace a la guía de programación de gestión de memoria parece estar roto; la versión de iOS se puede encontrar ahora en https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html – CCJ