我想确保某些维护任务“最终”执行。例如,在我检测到某些资源可能不再用于缓存后,我可能会调用:如何合并Objective-C中的延迟/延迟呼叫?
[self performSelector:@selector(cleanupCache)withObject:nil afterDelay:0.5];
但是,可能有很多地方我检测到这一点,我不想连续调用cleanupCache。我想将多个调用合并到cleanupCache中,以便我们只定期获得一次对cleanupCache的调用。
下面是我想到的 - 这是最好的方法吗? (NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(cleanupCache)object:nil]; [self performSelector:@selector(cleanupCache)withObject:nil afterDelay:0.5];
接受这个答案,因为这是痛苦的事实。最后,我添加了对缓存类的支持,基本上在原始问题中执行取消/执行顺序。 – thrusty 2011-06-02 16:46:29