在使用两次从服务器提取同一图像之前,它工作正常,但我需要减少网络使用量

NSString *friendAvatar = [NSString stringWithFormat:@"%@%@%@", @"http://www.mydomain.com/images/users/", myWords[0], @".jpg"];
[imageFile setImageWithURL:[NSURL URLWithString:friendAvatar]];
[bgImageFile setImageWithURL:[NSURL URLWithString:friendAvatar]]; //this is a zoomed in version of the friends photo


现在我正在使用这种方法尝试将已经拉过照片的UIImageView的图像拖出,这样我就不必两次拉同一张照片了...

NSString *friendAvatar = [NSString stringWithFormat:@"%@%@%@", @"http://www.mydomain.com/images/users/", myWords[0], @".jpg"];
[imageFile setImageWithURL:[NSURL URLWithString:friendAvatar]];
[bgImageFile setImage:imageFile.image];


尝试使用我的新方法时。什么都没发生。调试器中没有错误,背景图像只是空白。

最佳答案

根据您的评论,我发现,因为您在通话时使用AFNetworking

[imageFile setImageWithURL:[NSURL URLWithString:friendAvatar]];

它正在后台线程上执行,但是下一行

[bgImageFile setImage:imageFile.image];


不是AFNetworking调用,因此它在上一行完成之前正在执行,因此没有要使用的imageFile.image ...

所以,是的,我的上一个答案要求您自己执行异步代码,或者您可以在设置bgImageFile.image之前等待图像加载(这可以用KVO完成吗???)

09-07 11:15