我需要一種保存的方式來說:「iOS,我希望這個方法被執行a.s.a.p.,但不是在這個運行循環迭代中,最早在下一個,但請不要在這個中,謝謝。如何調用方法a.s.a.p.但最早在下一次運行循環迭代中?
現在我總是在做這樣的:
[self performSelector:@selector(doSomethingInNextRunLoop) withObject:nil afterDelay:0];
[self doSomeOtherThings];
隨着該-doSomeOtherThings
將總是先 -doSomethingInNextRunLoop
進行假設。
文檔說:
指定爲0的延遲並不一定導致選擇是 立即執行。選擇器仍在線程的 運行循環中排隊並儘快執行。
所以基本上它可以發生,該方法被立即調用,就好像我剛剛發送的直接消息,引起-doSomethingInNextRunLoop
-doSomeOtherThings
之前執行?
我該如何確定它將被稱爲a.s.a.p.但永遠不會在這個相同的運行循環迭代?
澄清措辭:運行循環我的意思是主線程和所有方法必須返回的迭代,直到線程爲新事件再次準備好。
棒極了!一個類別來解決這個問題是有道理的。 – openfrog