Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to stop performing selector?

Im trying to figure out how to stop performing a selector

I can start one by doing this

            [self performSelector:@selector(vibe)];

But im trying to figure out how i can stop one.

Any help would be very much appreciated..Thanks!

like image 942
Jacob Avatar asked Jul 28 '11 03:07

Jacob


2 Answers

The performSelector: method is equivalent to sending a selector message directly to the receiver, so it cannot be canceled. I.e., these two lines have the same effect:

[self performSelector:@selector(vibe)];
[self vibe];

The cancelPreviousPerformRequestsWithTarget: (and similar) methods can only cancel selector messages which are not performed immediately. You can send such a message via the performSelector:withObject:afterDelay: (and similar) methods.

See Table 3-2 of the Run Loop Management section of Apple's Thread Programming Guide for more information.

like image 60
titaniumdecoy Avatar answered Oct 31 '22 13:10

titaniumdecoy


[NSObject cancelPreviousPerformRequestsWithTarget:self];
// or
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(vibe) object:nil];
like image 31
jtbandes Avatar answered Oct 31 '22 14:10

jtbandes