Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AFNetworking从URL下载两个图像会导致日志中出现偶然错误_Ios_Afnetworking - Fatal编程技术网

Ios 使用AFNetworking从URL下载两个图像会导致日志中出现偶然错误

Ios 使用AFNetworking从URL下载两个图像会导致日志中出现偶然错误,ios,afnetworking,Ios,Afnetworking,我目前正在使用AFNetworking的自定义UIImageView+AFNetworking.h从URL下载两幅图像,如下所示: [self.topPicture setImageWithURL:upperPicture]; [self.bottomPicture setImageWithURL:lowerPicture]; 大约20%的情况下,这可以正常工作,但其余时间我会出现以下错误: :ImageIO:CGImageReadSessionGetCachedImageBlockData*

我目前正在使用AFNetworking的自定义
UIImageView+AFNetworking.h
从URL下载两幅图像,如下所示:

[self.topPicture setImageWithURL:upperPicture];
[self.bottomPicture setImageWithURL:lowerPicture];
大约20%的情况下,这可以正常工作,但其余时间我会出现以下错误:

:ImageIO:CGImageReadSessionGetCachedImageBlockData***CGImageReadSessionGetCachedImageBlockData:readSession[0x8a4ebd0]的readRef[0x8a50f30]不正确。

我不确定这是因为我试图同时在屏幕上设置两个图像(在主线程上),还是因为我没有正确配置AFNetworking

更新:

我正在使用parseapi的函数来使用代码获取用户的个人资料图片

NSArray *foundMatches = [queryForMatches findObjects]; //each "match" is a NSDictionary
其中的查询也在主线程上运行。稍后,我使用类似于

matchedUser[@"user_picture"] //user_picture is a string, which I then set to a new NSURL withString
在将其传递给
setImageWithURL:
函数之前。至少从我看到的情况来看,所有内容都是在主线程上检索的

更新2:


我尝试使用
getImageWithURL
只下载一张图片,效果很好,没有出现上述错误

这两行代码是在后台线程中执行的吗

苹果说

注意:在大多数情况下,UIKit类只能从 应用程序的主线程。这对于班级来说尤其如此 源于UIResponder或涉及操纵 应用程序的用户界面


你是在你的主线程中这样做的吗?看看@Patrick-谢谢。我确实是在我的主线程上这样做的,这可能就是导致错误的原因。因为我对iOS还很陌生,所以我不确定“将图像文件渲染成CGImageRefs并将其传递回主线程”是什么意思。有没有一个例子,我可以遵循看到更多关于这一点?谢谢您应该在主线程上执行此操作。AFNetworking负责后台线程。如果你已经在你的主线中,其他的事情正在发生。谢谢你的洞察力。如果有帮助的话,我在问题主体中添加了更多的内容。事实并非如此——它们目前处于主线上,这可能是问题的原因。我如何才能将它们放在后台线程上,并在图像下载完成后将它们设置为视图控制器中的属性?谢谢这可能不是问题所在
setImageWithURL:
将生成一个新线程来执行,因此从主线程调用它并不重要。这是因为在引擎盖下使用了
NSOperationQueue
,并且由于iOS 4,操作总是在单独的线程上执行()