求助:UItableviewCell中做文件下载,当view滑动时,正在下载的文件会中断,该怎么解决才好?

xamppobjc 发布于 2014年02月27日 | 更新于 2014年02月28日
无人欣赏。

在做文件下载的App,每个文件下载是在UitableviewCell中进行的操作,但是在下载过程中,若滑动UItableview的时候,下载会中断,我用下载进度去做了只创建一个下载的实例,但是还是会中断、停止下载,该怎么解决啊?貌似是UItableview重用引起的??? ps:UItableview重用的时候,是不是在cellForRowAtIndexPath里面的所以操作都会重新执行啊?

共7条回复
wbcyclist 回复于 2014年02月27日

我认为UitableviewCell不是一个进行下载操作的地方,
UitableviewCell只做下载状态的显示
把下载操作放在viewcontroller或全局工具类中去调用。

范小川 回复于 2014年02月27日

重用只是cell的重用,cellForRowAtIndexPath的方法肯定会执行的,要不然怎么加载新的数据。瞧这意思,你是在cellForRowAtIndexPath去做下载的操作了? 建议做一个单独下载类和数据类,不要让对视图的操作影响数据层。

xamppobjc 回复于 2014年02月27日

1楼 @wbcyclist 这个是可以的,但是实际上,我把数据产生也放在cell里面了,也就是数据生成、下载都在这里里面,所以有点坑。

2楼 @范小川 嗯嗯,是你说的那样,cellForRowAtIndexPath是执行了,但是在里面用的那些线程下载什么的在cell滑出屏幕的时候就失效了,看来还是类的结构有问题。

nickel 回复于 2014年02月27日

认真考虑下架构吧,把与界面没有直接关系的业务逻辑分离出来,不要和MVC参合在一起,MVC是用来做界面有关的逻辑的,况且你还是直接在V里做逻辑,相当粗陋的架构了。

xamppobjc 回复于 2014年02月27日

4楼 @nickel 那这样的下载处理怎么弄比较好啊?会有多个下载,对应多个cell,毕竟有下载进度显示什么的… 谢谢指点。

yangjie6020 回复于 2014年02月28日

4楼 @nickel 这个的确要重新考虑一下架构 下载是业务逻辑 应该直接和UI分开

xamppobjc 回复于 2014年02月28日

6楼 @yangjie6020

4楼 @nickel

2楼 @范小川

像这样的到底该怎么样架构才好啊?你们有个类图之类的看看么? 其实我不太会架构,不太知道那些东西应该抽离出来,又苦于没有人指导啊。

登录 或者 注册