【问题标题】:How to stop performing selector?如何停止执行选择器?
【发布时间】:2011-07-28 03:40:45
【问题描述】:

我想弄清楚如何停止执行选择器

我可以这样做

            [self performSelector:@selector(vibe)];

但我想弄清楚如何才能阻止它。

任何帮助将不胜感激..谢谢!

【问题讨论】:

标签: objective-c ios selector


【解决方案1】:

performSelector: 方法相当于直接向接收者发送选择器消息,因此无法取消。即,这两行具有相同的效果:

[self performSelector:@selector(vibe)];
[self vibe];

cancelPreviousPerformRequestsWithTarget:(和类似的)方法只能取消不立即执行的选择器消息。您可以通过performSelector:withObject:afterDelay:(和类似的)方法发送此类消息。

有关详细信息,请参阅 Apple 线程编程指南的 Run Loop Management 部分的表 3-2。

【讨论】:

    【解决方案2】:
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
    // or
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(vibe) object:nil];
    

    【讨论】:

      【解决方案3】:

      这不是很明显,但我相信以下应该有效:

      [NSObject cancelPreviousPerformRequestsWithTarget:self];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-22
        • 1970-01-01
        • 2016-07-09
        • 2018-02-09
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        相关资源
        最近更新 更多