我一直试图在过去一小时内解决这个问题,经过无休止的搜索似乎无法看到问题。我是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;
提前致谢!
答案 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];
}
}];
}