在AFImageRequestOperation ImageRequestOperationWithRequest之外访问UIImage的问题:成功块

时间:2012-10-24 00:24:25

标签: ios multithreading uiimageview afnetworking afjsonrequestoperation

我正在尝试显示从AFImageRequestOperation ImageRequestOperationWithRequest返回的图像:但似乎图像仅在成功块内可用。我已经尝试将它保存到类实例变量但是当我NSLog它时,它显示为null。但是,当我在成功块内部NSLog相同的实例变量时,在使用检索到的UIImage设置它之后,它实际上显示了一个十六进制值(如预期的那样)。非常感谢任何帮助。

以下是发生问题的代码:

imageRequest = [AFImageRequestOperation imageRequestOperationWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] success:^(UIImage *image) {
    globalImage = image; // trying to have accessible image outside of success handler
    [self setImageThumbImage:image]; trying to set image that class will use 
    NSLog(@"Image is: %@", self.albumThumbImage); // logs an actual value
    imageRequest = nil;
}];

[albumImageRequest start];
NSLog(@"The second albumThumbImage retrieval returns: %@", globalImage); // logs null

return self;

}

1 个答案:

答案 0 :(得分:0)

为什么不直接使用AFNetworking提供的UIImageView添加的方法?

来自git page

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)];
[imageView setImageWithURL:[NSURL URLWithString:@"http://i.imgur.com/r4uwx.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder-avatar"]];

我知道这并没有直接回答你的问题,虽然它似乎以更简单的方式实现了你想要做的事情。