iPhone - cancelPerformSelectorWithTarget not worki

2020-07-22 19:40发布

If I do this in a subclass of UIView:

[self performSelector:@selector(doSomething) withObject:nil afterDelay:5];

Then cancel it like this (I've tried both versions):

 [[NSRunLoop currentRunLoop] cancelPerformSelectorsWithTarget:self];
 //[[NSRunLoop mainRunLoop] cancelPerformSelectorsWithTarget:self];

The "doSomething" method still gets called. What am I doing wrong?

1条回答
做个烂人
2楼-- · 2020-07-22 20:19

In the NSObject class reference:

cancelPreviousPerformRequestsWithTarget:selector:object:

Cancels perform requests previously registered with performSelector:withObject:afterDelay:.

Use:

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

Hope this helps.

查看更多
登录 后发表回答