Duplicar posible:
NSTimer doesn't stop¿Cómo detener el evento NStimer?
En mi solicitud estoy usando NSTimer para llamar a una función de animación cada 3 segundos. Quiero detener este temporizador y llamé a otro evento mientras el temporizador todavía está funcionando. es posible?
¿No deberías suelte el temporizador antes de configurarlo a cero? 'invalidate' hará que el ciclo de ejecución libere su referencia, pero hay un retener adicional aquí cuando se asigna a' packetTimer'. –
Eso es verdad. Corregido – coneybeare
Hmm. Esto no me parece correcto. Sebatsien está en lo cierto: cuando asigna el temporizador a self.packetTimer (suponiendo que sea una propiedad retener), entonces hay un retener. Agregarlo al runloop es un segundo retener. Cuando lo invalides más tarde, hay un lanzamiento interno. Creo que necesitas una [versión de auto.packetTimer} explícita justo después de la invalidación y justo antes de configurar self.packetTimer a nil. ¿Me equivoco? – Marc