【发布时间】:2010-09-06 05:43:14
【问题描述】:
在我的 iPhone 应用程序中,我在延迟一段时间后使用以下函数来做某事
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;
有什么办法可以取消这个 performSelector 并在延迟后停止做某事?
【问题讨论】:
标签: iphone
在我的 iPhone 应用程序中,我在延迟一段时间后使用以下函数来做某事
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;
有什么办法可以取消这个 performSelector 并在延迟后停止做某事?
【问题讨论】:
标签: iphone
[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)
【讨论】: