我想确保某些维护任务“最终”执行。例如,在我检测到某些资源可能不再在缓存中使用后,我可以调用:

[自我performSelector:@selector(cleanupCache)withObject:nil afterDelay:0.5];

但是,可能在很多地方都可以检测到这一点,并且我不想连续调用cleanupCache。我想合并对cleanupCache的多次调用,以便我们仅定期获得一次对cleanupCache的调用。

这是我想出的办法-这是最好的方法吗?

[NSObject cancelPreviousPerformRequestsWithTarget:自我选择器:@selector(cleanupCache)对象:无];
[自我performSelector:@selector(cleanupCache)withObject:nil afterDelay:0.5];

最佳答案

所需的功能没有真正的内置支持。如果这在您的程序中很常见,那么我将创建一个蹦床类,以跟踪是否已安排向特定对象发送消息。它不应使用超过20行左右的代码。

关于objective-c - 如何在Objective-C中合并延迟/延迟的调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2968289/

10-10 15:01