非常初學者obj-c問題。順序方法執行obj-c
我的任務是做簡單的序列時,查看負載:
- 暫停2個secons
- 方法1執行
- 暫停2s中
- 方法2.執行
- 暫停2s中
- 方法3執行
我爲iOS5 +編寫此代碼,以便可以使用塊或其他功能。我試圖
[NSThread sleepForTimeInterval:x];
,使方法執行之間的停頓,但三個暫停添加到一個和我有一個很大的停頓,這是錯的一塊。 如何以正確的方式做到這一點?
非常初學者obj-c問題。順序方法執行obj-c
我的任務是做簡單的序列時,查看負載:
我爲iOS5 +編寫此代碼,以便可以使用塊或其他功能。我試圖
[NSThread sleepForTimeInterval:x];
,使方法執行之間的停頓,但三個暫停添加到一個和我有一個很大的停頓,這是錯的一塊。 如何以正確的方式做到這一點?
睡NSThread永遠不是正確的方式來處理定時執行方法。您需要NSTimer,您可以設置爲在兩秒鐘後觸發相同的方法(然後讓該方法確定下一個要執行的選擇器)還是將三個定時器設置爲在彼此之後觸發兩秒鐘,每個調用另一種方法。
您可以使用performSelector:withObject:afterDelay:或CodaFi所說的NSTimer。兩種方法都允許將對象傳遞給方法,如果需要傳遞多個參數,則該對象可以是數組或字典。
我倒是鏈的方法:
雖然有些脆弱,如果他需要使用他們的東西,他們並不相互依賴。 –
好吧,他可以有一個屬性'nextMethod'包含邏輯。 –
夠公平的,但是你必須有一個狀態來跟蹤你正在使用哪一個狀態。那麼當他自己發起這個,然後用戶在這些定時器觸發的時候啓動它會發生什麼?然後你有一種情況,你的計數器計算你所使用的方法太多了,並且你不同步,所以你需要有一個隊列來保存這一系列方法的所有調用,直到每個3-方法鏈已經完成等等等等等等等等。儘管我們不知道這些方法是什麼,所有的猜測都讓我留下來 –