首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从单独的web请求中累积结果

从单独的web请求中累积结果
EN

Stack Overflow用户
提问于 2013-09-16 18:04:59
回答 2查看 60关注 0票数 0

我对多线程和iOS都很陌生,我在如何处理这个问题上遇到了一个心理障碍。我不需要大量的代码,也不需要您为我编写代码,我只是在寻找更多的概念方法,或者可能是简短的伪代码。

我在iPad上有一个应用程序。

我在Azure (云存储)上存储了应用程序使用的8个文件

用户可以随意下载这8个文件,以便在iPad上本地使用。

每隔30分钟,我会检查Azure上的8个文件,并将它们与本地存储的文件进行比较,以找出差异。Azure上的每个更改文件(为简单起见,称其为Azure文件与本地文件的散列比较)在计算iPad上的内容与azure上的内容之间的更改文件时,都算作"+1“。

我遇到的问题是,Azure存储文件的方式,我有必要从iPad发出2个异步web请求,在第一个调用中获取8个文件中的3个,在第二个调用中获得5个文件。

那么,我需要能够比较所有的8个在一次,以便能够正确地更新徽章与正确的计数多少文件已经改变。如果我只是处理第一个web调用(假设一个文件已经改变了),那么我用一个1更新这个徽章,几秒钟后第二个web请求的响应出现了,三个文件已经改变了,我用3更新了这个徽章,这是不正确的,因为它应该是4。从第一个web请求的响应中的1更改,+从第二个web请求的响应中的3个更改。

那么,从这2个web请求响应中积累结果的最佳/最简单方法是什么,这样我就可以一次对所有8个文件进行一次比较,并使用适当的计数更新徽章。

EN

Stack Overflow用户

回答已采纳

发布于 2013-09-16 21:18:37

我可以建议你用两种方法来完成你的任务。

  1. 简单的方法。启动下载请求时,将updatedFilesCouter设置为-1。在任何操作结束时,您都需要进行比较,并添加或替换updatedFilesCouter。如果第一个操作要更改updatedFilesCouter,您可以注意到您的值总是-1,所以您需要替换它。如果第二个操作要更改updatedFilesCouter,那么它的值总是与-1不同,因此需要添加新值。因此,如果第一个操作有2个更新的文件,第二个操作有3个文件,那么最终您将得到5个文件,并且您可以知道哪个操作是最后一个更新徽章值的操作。
  2. 更先进的方法。为您的下载操作制作NSOperationsQueue。在完成任何操作后,将文件存储在内存中。完成NSOperationQueue后,进行比较,然后决定删除/替换文件。
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18834465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档