2010-09-06 15 views
72

En mi aplicación para el iPhone, estoy usando la siguiente función para hacer algo con cierto retrasoiPhone cómo cancelar la parada performSelector

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay; 

¿Hay alguna forma de cancelar este performSelector y dejar de hacer alguna cosa después de la demora ?

Respuesta

177
[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument]; 
+1

¿Hay alguna opción para rápida? – morroko

2

pensé que podría ser útil para la gente vea algo de código real, asi que aquí hay dos que utilizo para detener los sonidos y deslizar cuando voy a otra pantalla.

- (void)handleSwipeNext { 

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleSwipeNext) object:nil]; 

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(playPromptAndTarget) object:nil]; 

// do some swipe handling stuff 
} 
1

Swift 4.0 Versión:

NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(yourFunc), object: nil) 
Cuestiones relacionadas