iOS 6,SDWebImage成功/失败块错误。不兼容的块指针类型?

时间:2012-10-23 17:15:18

标签: ios6 sdwebimage

我懒得通过setImageWithURL将图片加载到UIImageView中嵌入的UIScrollView

由于这是照片库,我正在尝试使用“成功”。代码块在完全加载后设置myScrollView的contentSize和imageview的帧,以便它可以正确缩放。

问题是,我一直在使用'成功'在我的电话里如果我注释掉该方法的成功/失败部分,它可以工作,但我无法判断图像何时完成加载,因此无法正确调整容器的大小,以便正确缩放...帮助?

错误:

  

不兼容的块指针类型将'void (^)(UIImage *__strong)'发送到'SDWebImageSuccessBlock'类型的参数(又名'void (^)(UIImage *__strong, BOOL)'

我在以下代码中收到的错误是以success:^ ...

开头的行

代码:

 [_ivFullSize setImageWithURL:[NSURL URLWithString:[currentPhoto PhotoAbsoluteLocation]]
placeholderImage:[UIImage imageNamed:@"loading.png"]
success:^(UIImage *image){
                         [DejalBezelActivityView removeViewAnimated:YES];
                         self.myScrollView.contentSize = self.ivFullSize.image.size;
                         self.ivFullSize.frame = CGRectMake(0, 0,     self.ivFullSize.image.size.width, self.ivFullSize.image.size.height);
                     }
                     failure:^(NSError *error){
                                    [DejalBezelActivityView removeViewAnimated:YES];
                     }];

1 个答案:

答案 0 :(得分:5)

在将SDWebImage版本升级到最新版本后,我最近遇到了同样的问题。我不知道为什么会发生这种情况,但我认为它是功能块中未记录的更改。基本上该函数返回一个额外的布尔参数。

因此,在不知道问题的原因的情况下,我通过简单地向块添加新的布尔参数来解决它。而不是写

...
success:^(UIImage *image)
{
  ... do something with image
}
failure:^(NSError *error)
...

我使用了以下内容:

...
success:^(UIImage *image, BOOL dummy)
{
  ... do something with image and ignore dummy
}
failure:^(NSError *error)
...

这可以消除引发的错误,但仍然会对附加布尔变量的性质提出疑问。任何其他文件或澄清将不胜感激。文档here仍然引用旧版本。