我的ViewController里面有一个NSMutableArray
,它列出了服务器上的文件。此表格的每个单元格都有一些指标,显示下载进度和其他内容。
问题:
当我回到其他ViewController并使用TableView返回控制器时,单元格中的进度和指示符就像文件没有下载一样,但文件仍在后台下载。
我可能的解决方案:
拥有一个全局NSDictionary
,其中包含多个AFURLConnectionOperation
个对象的所有下载(每个字典都是下载,它有进度,行的索引)。
如果我使用Table退出ViewController并返回,我会检查是否有正在进行的下载(通过计算下载数组中的对象)并启动一个计时器,它会更新每个项目中的每个项目。 下载Array并将更改推送到TableView。
(我使用progressBlock
,Dim filePath As String
filePath = Application.ActiveWorkbook.Path
If Not System.IO.file.Exists(filePath) Then
System.IO.file.Create(filePath).Dispose()
End If
用于更新指标)
有更好的解决方案吗? 谢谢!
答案 0 :(得分:0)
你的可变数组是一个简单的全局或一些单例,还是应用程序委托或root视图控制器的属性取决于你,但是想法是正确的,将下载的协调从提供的视图控制器中拉出来,本身。
然而,看起来不对的是使用计时器。我推荐一些基于通知的方法,而不是一个轮询下载进度和相应更新表的计时器,下载者在下载进度/完成后向[NSNotificationCenter defaultCenter]
发布通知,然后让视图控制器将自己注册为这些通知的观察者,在通知进入时更新UI。
答案 1 :(得分:0)