我有一個URL,當它被複制到瀏覽器中時,它顯示一個圖像。我的功能應該是異步下載圖像。使用大中央調度下載UIImage
- (UIImage *)downloadImage:(NSString *)imageURL
{
NSError *error = nil;
NSURL *urlString = [NSURL URLWithString:imageURL];
NSData *data = [NSData dataWithContentsOfURL:urlString options:NSDataReadingUncached error:&error];
__block UIImage *image;
if (!error) {
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
image = [UIImage imageWithData:data];
});
return image;
} else {
NSLog(@"%@", [error localizedDescription]);
}
return nil;
}
當我嘗試顯示在UIImageView
形象我沒有得到任何錯誤,什麼都沒有。我已經NSLogged出data
和imageURL
通過,並沒有一個是空的。
有什麼建議嗎?
好眼力。我會做出必要的調整:) –
您可能想要返回錯誤(如果有的話),如其他人的答案中所示。 – MJN
此外,你應該檢查NSURLSession和下載任務。使用'dataFromURL',您將所有圖像數據加載到內存中,這可能會導致問題(圖像很大)。 – MJN