2016-12-05 109 views
0

我陷入了一個有趣的問題,因爲我想在3秒後執行一個方法,但也想檢查我是否得到了該方法的響應。響應後執行方法

如果我沒有在3秒內得到響應,那麼該方法將不會執行。

使用代碼:

Timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target: self selector:@selector(receiveMessageWebservice)userInfo: nil repeats:YES]; 

這將運行receiveMessageWebservice 3秒的時間間隔的。但問題是有些時候,響應不是在3秒鐘,它需要更多的時間,然後我有兩個或三個響應同時。

我不希望如此。

請幫忙。

+0

在響應中設置一個BOOL值,當響應發生變化時,根據bool值調用receiveMessageWebservice方法。 –

+0

okk,但事情是這種方法將在間隔3秒後被調用。當響應不會使計時器失效時,該如何做到這一點 –

+0

。 –

回答

0

當您請求Web服務時,只需使計時器失效並在響應成功/失敗塊中重新創建該計時器即可。

這樣就可以順利運行的每個固定時間間隔後的服務請求,而不要求多次

0

當然,網絡電話不能保證時間。正如我所假設的那樣,你想重新嘗試一個迴應,直到它不會到達你的身邊。

因爲我覺得你不應該在這裏使用計時器,而是依靠Web服務完成和失敗塊來重新啓動重新獲取Web服務。如果響應失敗,則只能重試。