检查从其他视图控制器 AFNetworking 下载 iOS

Check download from other view controller AFNetworking iOS

我有一个 ViewController,里面有一个 UITableView,它列出了服务器上的文件。这个 Table 的每个 Cell 都有一些指示器 显示下载进度 和其他内容。

问题:

当我返回其他 ViewController 并使用 Table 视图返回控制器时,单元格中的进度和指示器看起来好像文件没有在下载,但是文件仍在后台下载。

我可能的解决方案:

有一个全局 NSMutableArray 包含几个 NSDictionary 对象中的所有下载(每个字典都是一个下载,它有进度,行的索引)。

如果我用 Table 退出我的 ViewController 然后回来,我会检查是否有任何正在进行的下载(通过计算下载数组中的对象)并启动一个计时器,它将更新每个项目 下载数组并将更改推送到 Table 视图。

(我使用 AFURLConnectionOperation,用 progressBlock 更新指标)

有更好的解决办法吗? 谢谢!

你的 mutable 数组是一个简单的全局数组还是一些单例数组,或者应用程序委托或根视图控制器的 属性 由你决定,但这个想法是正确的,拉从呈现的视图控制器本身协调下载。

不过,似乎不对劲的是计时器的使用。而不是轮询下载进度并相应地更新 table 的计时器,我会建议一些基于通知的方法,下载程序 post 通知 [NSNotificationCenter defaultCenter] 作为下载 progress/complete 和然后让视图控制器将自己注册为这些通知的观察者,并在收到通知时更新 UI。

我建议您完成本教程:

http://www.raywenderlich.com/51127/nsurlsession-tutorial

这应该会给您关于如何处理您的案件的答案。