UIImage不显示来自服务URL的图像

时间:2014-07-11 12:35:40

标签: ios objective-c uiimage

我使用以下代码显示服务网址中的图片。但它没有显示任何内容谁能帮助我做到这一点。

cell.title.text = title;
                    cell.description.text = description;
                    cell.receivedDate.text = receivedDate;
                    NSURL *imageURL = [NSURL URLWithString:thumbnailImg[indexPath.row]];
                    NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
                    UIImage *image = [UIImage imageWithData:imageData];

                    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
                        NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
                        dispatch_async(dispatch_get_main_queue(),^{
                            cell.vendorImage.image = [UIImage imageWithData:imageData];
                        });
                    });

当我在cell.vendorImage.image中有一个断点时,它会显示我传递的url但它在UIImage中没有显示任何图像。

先谢谢

2 个答案:

答案 0 :(得分:0)

试试这个: -

NSURL *imageUrl = [NSURL URLWithString:[[self.content objectAtIndex:indexPath.row] valueForKey:@"imageUrl"] ]];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
   UIImage *image = nil;
   image = [UIImage imageWithData: [NSData dataWithContentsOfUrl: imageUrl]];
  dispatch_sync(dispatch_get_main_queue(), ^{
   cell.thumbnailImageView.image = image;
 });
})

答案 1 :(得分:0)

我认为您以异步方式获取图像数据,因此您需要在下载完成后通知TableView。

所以,试试这个。

dispatch_async(dispatch_get_main_queue(),^{
                        cell.vendorImage.image = [UIImage imageWithData:imageData];
                        [self.tableView reloadData];
                    });