如何在 Objective-C 中管理、跟踪或同步多个服务器的异步请求?
Posted
技术标签:
【中文标题】如何在 Objective-C 中管理、跟踪或同步多个服务器的异步请求?【英文标题】:How to manage , track or synchronize aynchronous multiple server requests in objective-c? 【发布时间】:2013-11-27 05:09:19 【问题描述】:我正在为 iphone 和 ipad 制作 e-NewsPaper 应用程序,它同时支持 ios 6 和 iOS7。
在应用程序中,将显示 1 周的新闻(在第一个视图中),每个新闻包含 10 到 15 个新闻页面和 30 到 40 个 >articles 用于这些页面(在第二个视图中)。所以每条新闻包含 10 到 15 个 图片 和 30 到 40 个 xml 文章(即在 webview 中解析和显示)。
我使用ASIHttpRequest
请求和下载图像和xml,NSXMLParser
用于xml 解析。我正在使用UICollectionView
在单元格中显示新闻列表。
有多条新闻异步下载。用户还可以通过单击每个单元格上的按钮播放-暂停-恢复(开始-停止-取消)此下载。还会有一个progressview来指示每个单元格的下载进度。
我正在执行以下任务/步骤来下载和显示新闻及其文章;
1) Call php webservice and parse its JSON response and get News Paper list i.e going to display in collectionview of 1st veiw.
2) On clicking of any News Paper (i.e on collectioview cell), parsing will be started for that news's xml file.
3) Then with parsing of that file, the images and xml files are going downloaded in document directory.
我能够下载单个以及多个新闻(及其图像和 xml),但由于它是异步的,因此无法识别、管理或跟踪正在多个新闻中下载或下载的新闻图像和 xml。
我需要跟踪,唯一地识别每个新闻的请求(及其图像和 xmls 下载过程),以便我可以播放-暂停下载。
我已经搜索了很多,但无法处理。
请帮帮我...
谢谢...
【问题讨论】:
【参考方案1】:我从未与ASIHttpRequest
合作过,我习惯于AFNetworking
。无论哪种方式,我刚刚检查了 ASIHttpRequest
文档,他们似乎使用 NSOperations 就像 AFNetworking
来处理请求。也许您可以使用模型中的任何 id 映射您的操作。如果这对您有用,那么取消、暂停、恢复任何操作将非常容易,只需在您存储它们的位置查找它们并对其执行任务即可。
希望对你有帮助。
【讨论】:
以上是关于如何在 Objective-C 中管理、跟踪或同步多个服务器的异步请求?的主要内容,如果未能解决你的问题,请参考以下文章
我如何知道 Xcode Objective-C 中的错误在哪里引发?