我同時從服務器下載一些信息,我使用相同的NSOperatioQueue。我有一個問題。例如,如果下載操作由於某種原因失敗,我不想從隊列中刪除該操作。NSOperation和NSOperationQueue
現在,即使它從服務器收到響應後立即失敗,操作也會從隊列中移除。
有什麼辦法可以告訴隊列一個特定的操作沒有邏輯完成,它應該保持隊列?
就我而言,我正在下載一組信息。例如,取得縣內的所有地點,然後取得每個縣的所有房屋。因此,在某些情況下,如果用戶未使用有效令牌登錄,則不能下載縣。在這種情況下,服務器將返回失敗消息。我希望將這些項目保留在隊列中,以便在用戶登錄到應用程序時再次嘗試。
示例代碼
self.downloadQueue.maxConcurrentOperationCount = 1;
for(Campaign *campaign in campaigns)
{
isContentUpdated = false;
if(self.operation)
self.operation = Nil;
self.operation = [[DownloadOutlets alloc] initWithCampaign:campaign];
[self.downloadQueue addOperation:operation];
}
其中downloadQueue是NSOperationQueue和DownloadOutlets延伸的NSOperation。 謝謝
您的操作如何設置?顯示一些代碼示例。 –
你是什麼意思?如果它已經執行了所有的代碼(無論是成功還是失敗),爲什麼要在隊列中保留一個操作? – micantox
就我而言,我正在下載一組信息。例如,取得縣內的所有地點,然後取得每個縣的所有房屋。因此,在某些情況下,如果用戶未使用有效令牌登錄,則不能下載縣。在這種情況下,服務器將返回失敗消息。我想把這些物品放在隊列中。 – Zach