UITableViewCell内的后台线程

时间:2016-07-31 16:10:08

标签: ios uitableview dispatch-async

我创建了一个自定义表格单元格,我在单元类中的后台线程中下载图像,现在假设我移动到以前的视图控制器。后台线程是否仍会执行并将使应用程序崩溃。我可以测试这个场景,因为图像加载速度快,没​​有机会移动到以前的视图控制器。

会有什么后果?

1 个答案:

答案 0 :(得分:0)

如果你没有正确地做到这一点,肯定会出现问题。您可能不会遇到崩溃,因为NSURLSession通过保留其委托来阻止您。但出于同样的原因,你留下的视图控制器会泄漏;它不会存在,下载和其他事情将继续发生。

如果您 正确地执行此操作,则当视图控制器不存在时,您应取消所有下载。如果您不需要占用带宽和CPU时间的这些下载,您有责任致电invalidateAndCancel来实现这一点。请注意,您通常无法在视图控制器的deinit中执行此操作,这完全是因为保留周期。但是一旦你完成了它,你的视图控制器将能够以良好的顺序存在。