在我的iPhone应用程序中,我使用以下函数在一段时间后执行某些操作
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;
有没有办法取消这个performSelector,并在延迟后停止做一些事情?
发布于 2010-09-06 13:53:10
[NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument];
发布于 2014-03-28 03:36:30
我认为这可能对人们看到一些实际的代码很有用,所以这里有两个我用来在转到另一个屏幕时停止声音和滑动的工具。
- (void)handleSwipeNext {
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleSwipeNext) object:nil];
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(playPromptAndTarget) object:nil];
// do some swipe handling stuff
}
发布于 2017-11-11 22:11:26
Swift 4.0版本:
NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(yourFunc), object: nil)
https://stackoverflow.com/questions/3649273
复制相似问题