iphone - AFNetworking 监控所有下载过程

标签 iphone objective-c ios afnetworking

我正在尝试从远程下载文件,现在我可以监控每个文件的下载成功状态

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

但是有什么办法可以监控整个下载过程呢?我怎么知道所有下载都已完成?

我尝试用

开始下载请求
[afhttpClient enqueueBatchOfHTTPRequestOperations:operationArray 
                                              progressBlock:progressBlock 
                                            completionBlock:completionBlock];

好像不行,那么上面的代码和在循环中用[operation start]开始下载请求有什么区别呢?

@mattt(如果你能看到的话)

最佳答案

您很可能有一个用于下载图像的 URL 对象的 NSArray。您需要做的是创建一个等于 URL 对象计数的整数值。每次你成功下载一个图像或完全下载失败(例如在几次超时后或收到 404 HTTP 状态代码)你需要递减那个整数(注意它应该是一个原子属性,因为 block 正在不同的执行线程)。一旦计数达到零 - 所有请求都已完成。您还可以使用该整数来更新进度条或简单地通知用户“#/15 图像已下载”。如果您需要任何其他说明,请告诉我。

不幸的是,我没有使用过 AFHTTPClient,所以我不能准确地告诉你这两个操作之间的区别,但是从上下文来看,第一个几乎同时异步执行所有请求,而后者使用连续的方法,其中第二个请求只会在第一个请求完成后启动。

关于iphone - AFNetworking 监控所有下载过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10072441/

相关文章:

iphone - 如何将自定义字体设置为 UILabel

ios - 应用程序中的所有元素都是像素化的

iphone - 处理 iPhone 上的错误和异常

objective-c - 混合 C 和 Objective-C 时的 ivars

ios - 如何在IOS上浏览和列出经典蓝牙设备?

iphone - 在 Objective C++ 中管理内存我需要知道什么?

iPhone:如何确定线程是否是主线程?

iphone - 将大型 XML 文件转换为 SQLite 文件的最快方法是什么?

ios - 在 Apple 的增强现实示例代码 "pARk"中使用四元数

iOS - 如何在应用程序处于后台时检测网络变化