He adjuntado un UIGestureRecognizer a un UIView. ¿De quién es la responsabilidad de liberar esto durante dealloc?¿Soy responsable de lanzar un gesto Reconocimientos de UIView en dealloc?
Específicamente:
UITapGestureRecognizer *t =
[[UITapGestureRecognizer alloc] initWithTarget:self.view action:@selector(tapHandler:)];
[self.view addGestureRecognizer:t];
[t release];
Así, self.view actualmente con la retención planta del gestureRecognizer.
Actualización Debería haber sido más claro. Mi pregunta tiene que ver con el método views dealc. ¿La clase de superclase de la vista maneja la liberación del gestureRecognizer cuando se lanza la vista? Actualmente asumo que es el caso.
No es una buena costumbre llamar a la liberación automática de todos sus objetos en lugar de soltarlos. – Tieme
@Tieme No estoy de acuerdo. Mantiene todo el código de administración de memoria en un solo lugar, lo que mejora la legibilidad y, por lo tanto, reduce el potencial de fugas debido a olvidarse de "liberar". La liberación retardada no afectará a la marca de la marea alta de la memoria porque el objeto persistirá después de que este método salga de todos modos. ¿Cuál es su razón para afirmar que usar la liberación automática no es un buen hábito? –
Estoy de acuerdo con usted en este ejemplo. Aquí está bien llamar a liberación automática. Pero aún no es una buena costumbre dejar de autorrealizar automáticamente los objetos, ya que al final agregará algo de sobrecarga a la administración de su memoria. – Tieme