Ios 不使用self调用performSelector NSObject实例

Ios 不使用self调用performSelector NSObject实例,ios,objective-c,Ios,Objective C,下面的代码有效地调度延迟的选择器调用,并有效地取消所有挂起的调度调用 [self performSelector:@selector(triggerUpdateForNSIndexPath:) withObject:indexPath afterDelay:triggerIn]; [NSObject cancelPreviousPerformRequestsWithTarget:self]; 另外,以下代码为withObject调度选择器,并取消该

下面的代码有效地调度延迟的选择器调用,并有效地取消所有挂起的调度调用

[self performSelector:@selector(triggerUpdateForNSIndexPath:)
           withObject:indexPath
           afterDelay:triggerIn];

[NSObject cancelPreviousPerformRequestsWithTarget:self];
另外,以下代码为withObject调度选择器,并取消该特定的调度选择器withObject

[self performSelector:@selector(triggerUpdateForNSIndexPath:)
           withObject:indexPath
           afterDelay:triggerIn];

[NSObject cancelPreviousPerformRequestsWithTarget:self
                                         selector:@selector(triggerUpdateForNSIndexPath:)
                                           object:indexPath];
我的问题是,这是在目标上使用
self
,这意味着与我的选择器方法
triggerUpdateForNSIndexPath
无关的任何其他预定调用都将被
[NSObject cancelPreviousPerformRequestsWithTarget:self]取消。我已尝试将
self
更改为
NSObject
实例,但从未触发选择器

如何控制定时选择器而不必知道确切的
withObject
?对我来说,使用
self
创建一个要替换的
NSObject
实例似乎很有意义,但我想我已经离开了


本质上,我担心的是,在未来的代码中,我将对特定选择器和调用
[NSObject cancelPreviousPerformRequestsWithTarget:self]延迟调用performSelector将在不相关时取消它。这将引入一个我想要避免的丑陋错误。

除了
取消以前的性能要求swithtarget:
,NSObject还具有
取消以前的性能要求swithtarget:selector:object:
方法

发件人:

+(void)取消先前的PerformRequestswithTarget:(id)目标选择器:(SEL)选择器对象:(id)参数

取消以前使用
性能选择器:withObject:afterDelay:
注册的执行请求

参数
a目标
先前向PerformSelect:withObject:afterDelay:instance方法注册的请求的目标

选择器
先前向PerformSelect:withObject:afterDelay:instance方法注册的请求的选择器。

争论
先前使用PerformSelect:withObject:afterDelay:instance方法注册的请求的参数。参数相等是使用isEqual:确定的,因此该值不必是最初传递的同一对象。Pass nil以匹配最初作为参数传递的nil请求

讨论

所有目标与目标相同、参数与参数相同、选择器与选择器相同的执行请求都将被取消。此方法仅删除当前运行循环中的执行请求,而不是所有的运行循环。

我是iOS新手,因此理解此区域有点困难。我最后做的就是简单地保留一张计划的NSTimer的地图。然后,我可以取消每个单独的一个或全部。

使用
NSTimer
然后,如果需要,您可以
使其无效
?嘿@特洛伊人,如果您是对的。我需要使用NSTimer。我将使用它并将计划的NSTimer保留在一个数组中,以便轻松取消所有计划的NSTimer。我是iOS新手,所以我不明白有些事情是如何运作的。:)是的,我使用这些调用来取消特定的计划选择器withObject。但在某些情况下,我想简单地取消特定选择器的所有预定选择器。我希望这是有道理的。。。