我想確保某些維護任務「最終」執行。例如,在我檢測到某些資源可能不再用於緩存後,我可能會調用:如何合併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