不兼容的块指针类型 - sd_setImageWithUrl

时间:2015-03-15 18:32:11

标签: ios objective-c

我一直试图在过去一小时内解决这个问题,经过无休止的搜索似乎无法看到问题。我是Objective-C开发的新手,最近开始使用新的代码库作为学习工具。

我试图将图像设置为具有占位符图像的单元格,并在完成请求时将图像设置为单元格的边界。但是,由于以下错误,代码失败:

不兼容的块指针类型发送' void(^)(UIImage * __ strong,NSError * __ strong,SDImageCacheType)'

在搜索SO和其他来源后,我发现只能确保确实返回了空白。您可以从下面的代码中看到没有返回任何内容,因此 无效。

if(imageURL != nil)
{
    cell.productImageView.contentMode = UIViewContentModeCenter;
    __weak typeof(cell) weakCell = cell;
    [cell.productImageView sd_setImageWithURL:imageURL placeholderImage:[UIImage sd_animatedGIFNamed:@"loading-indicator"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
        if (image)
        {
            [weakCell.productImageView setContentMode:UIViewContentModeScaleAspectFill];
        }
    }];
}

以下是该特定项目的标题代码:

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder completed:(SDWebImageCompletionBlock)completedBlock;

提前致谢!

1 个答案:

答案 0 :(得分:1)

SDWebImage的最新API略有不同,因此请更改此代码:

if(imageURL != nil)
{
    cell.productImageView.contentMode = UIViewContentModeCenter;
    __weak typeof(cell) weakCell = cell;
    [cell.productImageView sd_setImageWithURL:imageURL placeholderImage:[UIImage sd_animatedGIFNamed:@"loading-indicator"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        if (image)
        {
            [weakCell.productImageView setContentMode:UIViewContentModeScaleAspectFill];
        }
    }];
}