我同时从服务器下载一些信息,我使用相同的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