Iphone AFX2B;UIImage先下载低分辨率图像

Iphone AFX2B;UIImage先下载低分辨率图像,iphone,ios,ios5,afnetworking,Iphone,Ios,Ios5,Afnetworking,我在使用+UIImagesetImageWithURL:方法时遇到一些问题。我想做的是首先发送一个异步请求,请求一个缩略图。此图像非常小,因此加载速度应该相当快。我还想发送另一个异步请求来下载图像的高分辨率版本,因为加载时间稍长 我以为会是这样的: NSURL *thumbURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.server.com/uploads/thumbs/%@.png", name]]; [im

我在使用+UIImage
setImageWithURL:
方法时遇到一些问题。我想做的是首先发送一个异步请求,请求一个缩略图。此图像非常小,因此加载速度应该相当快。我还想发送另一个异步请求来下载图像的高分辨率版本,因为加载时间稍长

我以为会是这样的:

NSURL *thumbURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.server.com/uploads/thumbs/%@.png", name]];
[imageView setImageWithURL:thumbURL placeholderImage:[UIImage imageNamed:@"PHImage.png"]];

NSURL *hiRezURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.server.com/uploads/%@.png", name]];
[imageView setImageWithURL:hiRezURL];

但这只会加载高分辨率图像,耗时太长。有什么建议吗?

如果您查看一下
UIImageView+AFNetworking.m
的实现,您会发现它声明了一个属性:

@property (readwrite, nonatomic, retain, setter = af_setImageRequestOperation:) AFImageRequestOperation *af_imageRequestOperation;
-(void)setImageWithURL:(NSURL*)url placeholder image:(UIImage*)placeholder image
方法所做的第一件事(它实际上首先调用
-setImageWithURLRequest:placeholder image:success:failure:
)是
[self-cancelImageRequestOperation]af\u imageRequestOperation

这意味着,当您再次(在第3行)调用该方法时,它将取消第1行的操作

更好的方法是使用
+imageRequestOperationWithRequest:imageProcessingBlock:success:failure:
并在success块中设置图像视图的图像。我认为如果您使用此方法,还需要调用
[operation start]之后


希望能有帮助。

谢谢,我发现它做了一些非常类似的事情。我使用了方法
setImageWithURLRequest:request placeholder image:nil success:
,完成后调用了
setImageWithURL:placeholder image:
,并将返回的图像用作占位符。