我试图找出如何停止执行选择器
我可以通过这样做来开始
[self performSelector:@selector(vibe)];
但我试图找出如何阻止一个人。
非常感谢任何帮助。谢谢!
答案 0 :(得分:9)
performSelector:
方法相当于直接向接收方发送选择器消息,因此无法取消。即,这两行具有相同的效果:
[self performSelector:@selector(vibe)];
[self vibe];
cancelPreviousPerformRequestsWithTarget:
(和类似的)方法只能取消不立即执行的选择器消息。您可以通过performSelector:withObject:afterDelay:
(和类似的)方法发送此类消息。
有关详细信息,请参阅Apple线程编程指南的Run Loop Management部分的表3-2。
答案 1 :(得分:7)
[NSObject cancelPreviousPerformRequestsWithTarget:self];
// or
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(vibe) object:nil];
答案 2 :(得分:1)
这并不是很明显,但我相信以下内容应该有效:
[NSObject cancelPreviousPerformRequestsWithTarget:self];