2012-11-10 66 views
0

非常初學者obj-c問題。順序方法執行obj-c

我的任務是做簡單的序列時,查看負載:

  • 暫停2個secons
  • 方法1執行
  • 暫停2s中
  • 方法2.執行
  • 暫停2s中
  • 方法3執行

我爲iOS5 +編寫此代碼,以便可以使用塊或其他功能。我試圖

[NSThread sleepForTimeInterval:x]; 

,使方法執行之間的停頓,但三個暫停添加到一個和我有一個很大的停頓,這是錯的一塊。 如何以正確的方式做到這一點?

回答

3

睡NSThread永遠不是正確的方式來處理定時執行方法。您需要NSTimer,您可以設置爲在兩秒鐘後觸發相同的方法(然後讓該方法確定下一個要執行的選擇器)還是將三個定時器設置爲在彼此之後觸發兩秒鐘,每個調用另一種方法。

3

您可以使用performSelector:withObject:afterDelay:或CodaFi所說的NSTimer。兩種方法都允許將對象傳遞給方法,如果需要傳遞多個參數,則該對象可以是數組或字典。

1

我倒是鏈的方法:

  • 電話1.方法,使其調用2.
    1. 方法應該調用3.
    1. 應着手4. ...
+1

雖然有些脆弱,如果他需要使用他們的東西,他們並不相互依賴。 –

+1

好吧,他可以有一個屬性'nextMethod'包含邏輯。 –

+1

夠公平的,但是你必須有一個狀態來跟蹤你正在使用哪一個狀態。那麼當他自己發起這個,然後用戶在這些定時器觸發的時候啓動它會發生什麼?然後你有一種情況,你的計數器計算你所使用的方法太多了,並且你不同步,所以你需要有一個隊列來保存這一系列方法的所有調用,直到每個3-方法鏈已經完成等等等等等等等等。儘管我們不知道這些方法是什麼,所有的猜測都讓我留下來 –