iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – NSURLConnection是否阻止主/ UI线程大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我们滚动到屏幕上时,我正在下载表视图单元格中的图像.出于UX的原因,我开始下载图像 – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath.我不要等到表视图完成滚动.设置表格视图单元格后,我开始下载我还没有的图像.但是,在表视图停止移动之前,它们似乎没有完全下载.一旦它停止移动,图像几乎立即下载.

无论如何使用NSURLConnection,它没有被主UI线程阻止?或者,是否有一种方法可以在滚动表格视图时非常快速地下载这些图像.

**编辑**

为了证明NSURLConnection较慢,我使用NSThread在另一个线程中分离新的选择器.然后我下载数据并回调主线程,在那里我创建一个UIImage并在表视图中显示它.此方法的工作速度更快.

就个人而言,我认为NSURLConnection被抛入到UITableView滚动阻止它的事件循环中.

解决方法

阅读 NSDefaultRunLoopMode vs NSRunLoopCommonModes以获得有关所有下载委托通知排队的原因的详细说明,但是在使用主线程更改时从下载时进行下载:

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                              delegate:self];

对此:

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
                                                              delegate:self
                                                      startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop]
                      forMode:NSRunLoopCommonModes];
[connection start];

大佬总结

以上是大佬教程为你收集整理的iphone – NSURLConnection是否阻止主/ UI线程全部内容,希望文章能够帮你解决iphone – NSURLConnection是否阻止主/ UI线程所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: