覆盖NSObject并添加一个类变量

时间:2010-02-07 04:16:04

标签: iphone nsobject nsinvocation

在使用多个传递参数的延迟后,我使用以下代码执行选择器:

http://nifty-box.com/blog/2006/12/nsinvocation-cleans-code.html

它运作良好,但我需要扩展它以支持相当于:

[NSObject cancelPreviousPerformRequestsWithTarget:self]

(在这种情况下,目标不是自我,但我会相信_UFLatePerformer的一个实例)

有没有办法做到这一点,所以我的视图的解除分配可以杀死所有剩余的延迟性能请求?

1 个答案:

答案 0 :(得分:2)

在Mac上你可以使用objc_setAssociatedObject,但iPhone上不存在。

所以基本上你需要某种管理器单例来保存这些引用,你传入一个NSObject并且它可以做你想要的。

当我做类似的事情时,我写了一个单例类,它接受了执行操作的请求,并启动了一个在执行操作时触发的计时器 - 那时我的经理类决定了相关请求是否是仍然有效,如果是这样就解雇了。因此我可以有效地取消一个计时器,并且还可以告诉管理员重置没有真正的计时器,它只是制作了一个新计时器,但是当旧计时器触发了它被请求执行的操作无效时。

所以基本上计时器只用一个请求ID调用单例,这导致了一个包含调用细节的字典条目。