Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 取消排队的performSelector:afterDelay调用_Objective C_Selector - Fatal编程技术网

Objective c 取消排队的performSelector:afterDelay调用

Objective c 取消排队的performSelector:afterDelay调用,objective-c,selector,Objective C,Selector,有人知道在调用performSelector:withObject:afterDelay时,是否可以从事件堆栈或计时器堆栈(或API使用的任何机制)中取消已排队的选择器事件 我使用这个事件堆栈来更改选项卡栏选项卡中图像的属性,有时会在一个快速执行的循环中排队等待长达10秒的更改。。。大概5毫秒左右 如果用户切换选项卡,则会出现问题。。。比如说,我让图像更改排队等待一个图像,该图像在启用Tab#4后立即显示,然后用户快速切换到Tab#3,然后右回到Tab#4。。。然后,当旧队列仍在播放时,这将重新

有人知道在调用
performSelector:withObject:afterDelay
时,是否可以从事件堆栈或计时器堆栈(或API使用的任何机制)中取消已排队的选择器事件

我使用这个事件堆栈来更改选项卡栏选项卡中图像的属性,有时会在一个快速执行的循环中排队等待长达10秒的更改。。。大概5毫秒左右

如果用户切换选项卡,则会出现问题。。。比如说,我让图像更改排队等待一个图像,该图像在启用Tab#4后立即显示,然后用户快速切换到Tab#3,然后右回到Tab#4。。。然后,当旧队列仍在播放时,这将重新排队10秒,如果切换速度足够快,可能需要2或3秒左右的时间。。。但是,即使在5秒钟内到达溪流也是一个问题

所以我需要一些方法来取消旧的更改堆栈,然后再将新堆栈放在

我用过去时编写这个查询,因为我已经找到了解决这个问题的另一种方法,在回放函数中添加了鹰眼事件过滤器。然而,我仍然好奇是否可以取消活动,因为我感觉这样的知识在未来会派上用场。感谢您提供的任何帮助:)

target
是调用
performSelector:afterDelay:
的原始对象

例如:

// schedule the selector
[self performSelector:@selector(mySel:) withObject:nil afterDelay:5.0];
// cancel the above call (and any others on self)
[NSObject cancelPreviousPerformRequestsWithTarget:self];

请参见,它位于执行选择器:withObject:afterDelay:说明的末尾。

检查nsrunlop文档。如果要查找“performSelector”以使其匹配“
取消以前的performSelector
”,则需要
-cancelPerformSelector with target:

。。。没有。(啊,苹果,你为什么这样对我?)

呃,啊,"匹配"的方法是:

performSelector

cancelPreviousPerformRequestsWithTarget

(只是为了在不搜索文档的情况下更难记住。)

要取消以前的所有执行请求,您可以使用:

[NSObject cancelPreviousPerformRequestsWithTarget:self];   

要了解其用法,请尝试以下方法:[NSObject cancelPreviousPerformRequestsWithTarget:self];[NSObject cancelPreviousPerformRequestsWithTarget:自选择器:@selector(mySel:)对象:nil];如何在回放功能上使用鹰眼事件过滤器?
performSelector

cancelPreviousPerformRequestsWithTarget
[NSObject cancelPreviousPerformRequestsWithTarget:self];