代码之家  ›  专栏  ›  技术社区  ›  Satyam

iPhone如何取消停止性能选择器

  •  74
  • Satyam  · 技术社区  · 14 年前

    在我的iPhone应用程序中,我使用以下功能在延迟之后做一些事情

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

    有没有办法取消这个执行选择器,在延迟之后停止做一些事情?

    3 回复  |  直到 7 年前
        1
  •  180
  •   beefon    14 年前
    [NSObject cancelPreviousPerformRequestsWithTarget:yourTarget selector:aSelector object: anArgument];
    
        2
  •  2
  •   JScarry    11 年前

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

    - (void)handleSwipeNext {
    
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleSwipeNext) object:nil];
    
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(playPromptAndTarget) object:nil];
    
    // do some swipe handling stuff
    }
    
        3
  •  1
  •   iOS.Lover    7 年前

    Swift 4.0版本:

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