我想单击一个按钮开始下载图像并在更新后将我的 UIImageView 更新为新图像。我的代码的问题是它只下载东西,而不是更新。只有当我再次单击它时它才会更新。我希望它在未来某个时间更新图像,当图像被下载时。我怎么做?
编辑:我发现了错误的代码,改变它有点帮助,一切正常。另一个问题来了——我如何简化这段代码而不把它弄得一团糟?看起来过分了。
- (IBAction)getImage
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{
NSURL *imageURL = [NSURL URLWithString:@"http://example.com/1.jpg"];
__block NSData *imageData;
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{
imageData = [NSData dataWithContentsOfURL:imageURL];
dispatch_sync(dispatch_get_main_queue(), ^{
self.image = [UIImage imageWithData:imageData];
});
});
});
self.imageView.image = self.image;
}