Ios 正在将中的图像加载到分派中的UIImageView不工作

Ios 正在将中的图像加载到分派中的UIImageView不工作,ios,web,uiimageview,grand-central-dispatch,dispatch,Ios,Web,Uiimageview,Grand Central Dispatch,Dispatch,我正在使用UICollectionView,需要将图像加载到采集单元 这是密码 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); dispatch_async(queue, ^{ NSURL *imageURL = [NSURL URLWithString:post.cover_img_url]; NSData *data = [NS

我正在使用
UICollectionView
,需要将图像加载到采集单元

这是密码

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^{
        NSURL *imageURL = [NSURL URLWithString:post.cover_img_url];
        NSData *data = [NSData dataWithContentsOfURL:imageURL];
        UIImage *image = [UIImage imageWithData:data];
        dispatch_async(dispatch_get_main_queue(), ^{
            [cell.cover_img setImage:image];
        });
    });


post.cover_img_url = the_url_for_the_image;
cell.cover_img = the_UIImageView_object;
当我将图像设置为非网络图像时,它可以完美地工作

但是,当我尝试从web上查看时,
UIImageView
是空白的,而不是图像


有人有什么想法吗?

您的代码看起来应该正常工作,但有几件事情需要测试。首先,您需要检查以确保
imageURL
都是非nil的,并且精确地指向您认为它所指向的位置。如果必须,请将日志结果复制粘贴到桌面浏览器

NSLog(@"%@",imageURL);
其次,如果获取图像失败,您需要能够检测到这一点。我建议,如果您继续使用dataWithContentsOfURL:route,您至少可以使用以下内容来检查错误:

NSError *error = NULL;
NSData *data = [NSData dataWithContentsOfURL:imageURL options:NSDataReadingMappedIfSafe error:&error];

if (error) {
    // ...
}

您是否在image变量中获得了有效(即非nil)图像?@DavidDoyle我如何检查它?在调试器中检查它-在以“UIImage*image=”开头的行上添加一个断点,然后打印该对象。如果你得到的东西看起来像一个完整的数字串,那么它可能是一个有效的图像。如果返回为nil,则表示您没有下载图像(或者源文件不是图像文件)。返回为nil,但这很奇怪,因为如果我将url放在浏览器中,它与相同的url完美配合,会出现什么问题?