我想在當前方法通過並且UI已更新後執行方法。爲此,我現在使用[object performSelector:@selector(someSelector) withObject:someObject afterDelay:0.0]
。根據Apple's documentation,這將創建一個NSTimer,然後觸發並將選擇器追加到當前的NSRunLoop。但我不認爲這很優雅。有一種簡單的方法可以直接將選擇器排入當前運行循環,而不需要Cocoa創建一個Timer等。將選擇器排入運行循環 - 是[NSObject performSelector:withObject:afterDelay:]要走的路嗎?
將performSelectorOnMainThread:withObject:waitUntilDone:
(如果我在主線程)或performSelector:onThread:withObject:waitUntilDone:
與waitUntilDone:NO
做我想做的開銷更少?
歡呼和預先感謝
MrMage
我所引用的文件讀取「期間執行當前線程上的指定選擇下一個運行循環週期和可選的延遲時間之後。'這不意味着選擇器必須排入下一個運行循環嗎? – MrMage 2009-11-14 17:27:05
當然可以。 :-)這是通過定時器觸發事件。 – 2009-11-14 18:05:40
接受這一個是因爲它讓我對真正發生的事情有了最深入的瞭解。 – MrMage 2009-11-14 22:00:41