2015-04-02 30 views
-1

我有下面的代碼循環通過一個數組。我需要檢查完成或失敗選擇器是否已被調用迭代到我的dataArray中的下一個對象。iOS:如何檢查@selector是否已被調用,然後繼續執行for循環?

 for (id object in dataArray) { 

      [client setDidFinishSelector:@selector(getDataFinish:)]; 
      [client setDidFailSelector:@selector(getDataFail:)]; 
      [client getData:object]; 
     } 

在我getDataFinish方法中,我分配值,我試圖保持它的順序。如果我用上面的方法,該值可以走出秩序,因爲客戶端的響應時間可以爲每個請求的不同..

+1

你處理什麼樣的數據? - 我認爲這樣做多次請求通常是不好的做法 - 如果可以的話,您應該考慮重構端點以接受多個值並返回它們。 – Wez 2015-04-02 15:38:16

+1

我會在NSOperationQueue添加的操作,而不是 – 2015-04-02 15:41:14

+0

您的要求可能有以前的請求和下一請求的概念。如果請求完成,除非前一個請求已完成,否則不要執行任何操作。另外,除非未完成,否則請始終嘗試處理下一個請求。 – nielsbot 2015-04-02 16:01:24

回答

0

我看到兩種可能的解決方案,這取決於你實際上要怎樣做。這聽起來像你打電話給互聯網,所以是的,你會得到不同的響應時間(或根本沒有響應)。正因爲如此,我會建議使用NSNotification。有關更多信息,請參閱this answer

另一種選擇是在您的代碼(AKA a BOOL)中創建一個標記,並在您的方法完成時將其設置爲YES。同樣,如果你撥打電話到網絡我不會因爲你是,如果用戶沒有服務和BOOL從不改變自己設置了一個無限循環推薦這種方法。

如果您仍然有問題,讓我知道,我可以提供更詳細的解答。

相關問題