2011-02-15 56 views
6

我希望能夠單獨取消延遲選擇器。我可以用[NSObject cancelPreviousPerformRequestsWithTarget...]來做他的事情,但需要所有的方法參數來做到這一點。在我想取消的地方,我沒有他們。我可以通過performSelector獲取延遲選擇器列表:withObject:afterDelay:?

有沒有辦法讓選擇器的列表與用於延遲選擇器的參數一起延遲?

解決方法是隻保留跟蹤參數,當然。或者使用GCD並使我的選擇器(現在塊)檢查是否應立即返回。

回答

0

不是直接的。一個簡單的方法就是使用NSOperation - 然後只保留對將來可能需要取消的操作的引用。

+0

忘記menton:代碼驅動界面的一部分,所以我必須保持它的主線程。這就是爲什麼我沒有把NSOperation放到混合中。 – 2011-02-15 20:59:55