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

时间:2015-08-18 18:53:41

标签: ios objective-c afnetworking afnetworking-2

我的ViewController里面有一个NSMutableArray,它列出了服务器上的文件。此表格的每个单元格都有一些指标,显示下载进度和其他内容。

问题:

当我回到其他ViewController并使用TableView返回控制器时,单元格中的进度和指示符就像文件没有下载一样,但文件仍在后台下载。

我可能的解决方案:

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

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

(我使用progressBlockDim filePath As String filePath = Application.ActiveWorkbook.Path If Not System.IO.file.Exists(filePath) Then System.IO.file.Create(filePath).Dispose() End If 用于更新指标)

有更好的解决方案吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

你的可变数组是一个简单的全局或一些单例,还是应用程序委托或root视图控制器的属性取决于你,但是想法是正确的,将下载的协调从提供的视图控制器中拉出来,本身。

然而,看起来不对的是使用计时器。我推荐一些基于通知的方法,而不是一个轮询下载进度和相应更新表的计时器,下载者在下载进度/完成后向[NSNotificationCenter defaultCenter]发布通知,然后让视图控制器将自己注册为这些通知的观察者,在通知进入时更新UI。

答案 1 :(得分:0)

我建议你阅读本教程:

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

哪个应该给你答案如何处理你的情况。