2011-04-05 58 views
0

我有一段代碼有時需要調用「cancelPreviousPerformRequest」,其他時間不需要。從我的測試中看來,即使選擇器已被移除,也可以調用它。我只是好奇,如果這是可以接受的,或者是有什麼方法說「如果(選擇存在)刪除它,否則什麼都不做」cancelPreviousPerformRequest是否存在?

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(stopUpdatingCoreTemps:) object:@"SHUTDOWN"]; 

回答

2

它的罰款。

基本上,runloop只是循環遍歷所有排隊的performSelector...。如果你的目標不在那裏,它不會做任何事情。

但是,如果您有多個runloops,這隻會變得棘手。 cancelPreviousPerformRequests...只適用於當前的runloop。

+0

非常感謝,它似乎沒問題,但我找不到文檔中的任何內容,並希望仔細檢查。 – fuzzygoat 2011-04-05 17:16:27

+0

我同意,它當然可以更清楚... – amattn 2011-04-05 17:18:09