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.
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:
performSelector
cancelPreviousPerformRequestsWithTarget
(Just to make it extra hard to remember, without searching the docs.)
In order to cancel all previous perform requests, you may use :
[NSObject cancelPreviousPerformRequestsWithTarget:self];