Ios SDWebImage的线程';s sd_setImage

Ios SDWebImage的线程';s sd_setImage,ios,sdwebimage,Ios,Sdwebimage,SDWebImage的sd_setImage的完成块的线程是什么 如果我从完成块修改UI,我是否应该总是将该代码包装在DispatchQueue.main.async(){}中?您不需要使用DispatchQueue.main.async(){},完成块总是在主线程上调用。sd_setImage方法的部件源代码: 它在主线程上调用它OK。。。我发誓有一次我修复了一个非常奇怪的行为,将代码包装在DispatchQueue.main.async()中的完成块中。这种奇怪行为的原因可能是其他原因。基本

SDWebImage的
sd_setImage
的完成块的线程是什么


如果我从完成块修改UI,我是否应该总是将该代码包装在
DispatchQueue.main.async(){}
中?

您不需要使用
DispatchQueue.main.async(){}
,完成块总是在主线程上调用。
sd_setImage
方法的部件源代码:

它在主线程上调用它OK。。。我发誓有一次我修复了一个非常奇怪的行为,将代码包装在
DispatchQueue.main.async()
中的完成块中。这种奇怪行为的原因可能是其他原因。基本上,我是在拍摄结果图像并对其应用遮罩,然后将其再次设置为
UIImageView
。我想这在技术上可能是正确的。但是,我仍然需要在
DispatchQueue.main.async(){
中调用我的代码,是的,我确实相信问题/原因是不同的,但实际上是通过
DispatchQueue.main.async()
解决的。我正在对图像进行圆角处理(使用CALayer掩码),舍入的图像大小将不正确。我在UICollectionView中有图像,可能是某些自动布局问题或其他大小调整问题尚未在完成处理程序中完全调整图像视图的大小。听起来很奇怪。可能您的UI操作需要通过调用
async()
方法将其放入队列任务中。