IPhone 如何取消停止执行选择器

在我的 iPhone 应用程序中,我使用下面的函数在一些延迟之后做一些事情

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

有什么方法可以取消这个性能选择器并在延迟之后停止执行某些操作吗?

26845 次浏览
[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument];

我认为让人们看到一些实际的代码可能会有用,所以这里有两个我用来停止声音和滑动当我走到另一个屏幕。

- (void)handleSwipeNext {


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


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


// do some swipe handling stuff
}

Swift 4.0版本:

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