2014-01-30 54 views
2

我正在执行[self performSelector:@selector(<selctor>) withObject:<object> afterDelay:30];如何唯一标识选择器?

in循环说每个事件或行动后。

如果操作失败,我想取消与它关联的执行选择器。

我知道

[NSObject cancelPreviousPerformRequestsWithTarget:self 
               selector:@selector(<selector>) 
                object:nil] 

但如何取消特定的所有执行选择调用循环发言权列表进行选择。

回答

0

除非获得某种唯一的引用(如对象指针),否则不能唯一标识每个请求。

另一种方法是使用NSTimer对象来调用选择器,您可以通过它的invalidate方法在某处存储并取消选择。

3

你不能。只是不要使用执行选择器。相反,使用NSOperation实例添加到队列中或将NSInvocation实例添加到列表中,并在确定所有测试都通过后执行它们。

+0

你好像是你的标准+1,但是iam使用trojanfoe的答案 – amar