cancelling queued performSelector:afterDelay calls cancelling queued performSelector:afterDelay calls objective-c objective-c

cancelling queued performSelector:afterDelay calls


[NSObject cancelPreviousPerformRequestsWithTarget:]

or

[NSObject cancelPreviousPerformRequestsWithTarget:selector:object:]

The target is the original object on which performSelector:afterDelay: was called.

For example:

// schedule the selector[self performSelector:@selector(mySel:) withObject:nil afterDelay:5.0];// cancel the above call (and any others on self)[NSObject cancelPreviousPerformRequestsWithTarget:self];

See apple docs, it's right at the end of the performSelector:withObject:afterDelay: description.


In order to cancel all previous perform requests, you may use :

[NSObject cancelPreviousPerformRequestsWithTarget:self];   


If you are looking for "performSelector" to have its matching "cancelPreviousPerformSelector"... it doesn't. (Ugh, Apple, why do you do that to me???)

The, er, ah, "matching" methods are:

performSelectorcancelPreviousPerformRequestsWithTarget

(Just to make it extra hard to remember, without searching the docs.)