我正在使用 setImageWithURLRequest:placeholderImage:success:failure
从 URL 下载图像,图像下载工作正常。我遇到的问题是,当我将下载的图像设置为 UIIMageView
时,没有任何显示,但占位符被删除。
我的代码如下:
__weak UIImageView *userCardImageView;
AFImageResponseSerializer *serializer = [[AFImageResponseSerializer alloc] init];
serializer.acceptableContentTypes = [serializer.acceptableContentTypes setByAddingObject:@"image/png"];
self.userCardImageView.imageResponseSerializer = serializer;
[self.userCardImageView setImageWithURLRequest:urlRequest placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
[userCardImageView setImage:image];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
if (error)
{
NSLog(@"Error: %@", error);
NSLog(@"Error response: %@", response);
}
}];
URL 是正确的,因为当我将它复制并粘贴到浏览器中时,我得到了我的图像。
有人可以告诉我如何让我的代码更新 URL 吗?我将 UIImageView
分配给弱属性是否正确?我这样做是因为使用 self 或强变量可能会导致保留周期。
最佳答案
看来你应该实现这条线
[userCardImageView setImage:image];
代替
[userCardImageView setImage:[UIImage imageWithData:userCardImageData]];
在你的成功 block
PS:如果你想在 self.userCardImageView 中设置图像,你宁愿声明一个弱 Controller 而不是一个弱 UIImageView 引用。有点像
__weak __typeof(&*self)weakSelf = self
关于ios - AFNetworking setImageWithURLRequest 不更新 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28429626/