iphone - teclado - ¿Necesito usar el método dealloc con ARC?
teclado iphone descargar (5)
Ans es NO porque con ARC no hay necesidad de dealloc.
Entonces, tengo clase:
@interface Controller : NSObject
{
UILabel* fileDescription;
}
@property(strong, nonatomic) UILabel* fileDescription;
¿Necesito usar el método dealloc donde la propiedad fileDescription será igual a nil?
Por ejemplo:
-(void)dealloc
{
fileDescription = nil;
}
Si no, ¿quién ignorará la memoria utilizada por fileDescription?
Como está utilizando ARC, no tiene que usar dealloc
Complier configurará autoreleasePool dependiendo del alcance de la propiedad, variable o control. Y release
la memoria. Existen diferentes tipos de autoreleasepool, generalmente podemos definirlos como nivel de función, nivel de clase, etc. Espero que esto ayude.
En general, no es necesario que proporcione un método dealloc
subclase ya que ARC administra la vida de las variables de instancia.
Sin embargo, puede ser útil realizar una limpieza que no sea la de liberar objetos , por ejemplo, para eliminar un observador o cerrar una conexión de red de forma limpia. Por lo tanto, se le permite dealloc
bajo ARC, pero no se le permite llamar a [super dealloc]
desde el método subclasificado.
En su caso particular, no es obligatorio, sin embargo.
No.
No necesita el método dealloc
en ARC
.
Pero si desea realizar algunas tareas de limpieza cuando su vista se descarta o se libera. Es el mejor lugar, en tal caso puedes implementarlo.
Por ejemplo:
Está ejecutando un temporizador en su vista y está actualizando su vista. Cuando se descarta la vista, debe detener ese temporizador. En esa condición, puede usar el método dealloc y detener el cronómetro allí.
Similar para el observador NSNotification
.
Si estás usando ARC.
No es necesario utilizar dealloc y release, el compilador sabe que su propiedad y los objetos son fuertes / débiles, por lo que lo gestionará.
EDITAR:
dealloc
método dealloc
es obligatorio si usa objetos de coreframework como CG...
& CF...
Incluso si crea observadores para notificaciones, debe eliminarlos y dealloc
es el mejor lugar para eliminarObserver.