我通过 setImageWithURL
将图像延迟加载到嵌入 UIScrollView
中的 UIImageView
中。
由于这是一个照片库,因此我尝试使用“成功”代码块来设置 myScrollView
的 contentSize 和 ImageView 的框架,以便在完全加载后它可以正确缩放。
问题是,我在通话中使用“成功”时不断收到奇怪的错误。如果我注释掉该方法的成功/失败部分,它可以工作,但我无法判断图像何时完成加载,因此无法正确调整容器大小以使其正确缩放...帮助?
错误:
Incompatible block pointer types sending
'void (^)(UIImage *__strong)'
to parameter of type'SDWebImageSuccessBlock'
(aka'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];
}];
最佳答案
我最近遇到了同样的问题,将SDWebImage版本升级到最新版本后。我不知道为什么会发生这种情况,但我认为这是功能 block 中未记录的更改。基本上该函数返回一个附加的 bool 参数。
因此,在不知道问题原因的情况下,我通过简单地向 block 添加一个新的 bool 参数来解决它。而不是写
...
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)
...
这消除了引发的错误,但仍然对附加 bool 变量的性质留下了疑问。任何额外的文件或澄清将不胜感激。文档 here仍指旧版本。
关于ios6 - iOS 6,SDWebImage 成功/失败 block 错误。不兼容的 block 指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13035831/