Pregunta iPhone cómo cancelar stop performSelector


En mi aplicación de iPhone, estoy usando la siguiente función para hacer algo después de un retraso

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

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


74
2017-09-06 05:43


origen


Respuestas:


[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument];

178
2017-09-06 05:53



Pensé que podría ser útil para las personas ver un código real, así que aquí hay dos que utilizo para detener 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
}

2
2018-03-27 19:36



Versión de Swift 4.0:

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

1
2017-11-11 14:11