首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SDWebImage完全闭包称为每幅图像4次

SDWebImage完全闭包称为每幅图像4次
EN

Stack Overflow用户
提问于 2015-07-08 12:07:12
回答 1查看 300关注 0票数 2

我将SDWebImage进展结合使用。

我在‘`init()构造函数中使用了以下代码:

代码语言:javascript
复制
if let url: NSURL = NSURL(string: previewCard.getImageUrls().getWithInt(0) as! String) {
  self.imageView?.setImageWithURL(url, placeholderImage: MGImage.imageWithColor(UIColor.clearColor()), options: SDWebImageOptions.RefreshCached, completed: { (image:UIImage!, error:NSError!, type:SDImageCacheType, loadUrl:NSURL!) -> Void in

    println("-------------- done")
    }, usingActivityIndicatorStyle: UIActivityIndicatorViewStyle.Gray)

}

控制台输出是:

代码语言:javascript
复制
 println("-------------- done")
 println("-------------- done")
 println("-------------- done")
 println("-------------- done")

为什么整个闭包被调用了四次?我如何防止它被称为四次呢?

编辑:我验证了init()方法只调用了一次。无论我在哪里调用setImageWithUrl方法,都至少会调用两次完全闭包。

EN

回答 1

Stack Overflow用户

发布于 2015-07-08 15:38:02

这是因为您指定了"RefreshCached“。查看文档这里。特别是在SDWebImageRefreshCached下的这一行:

对缓存的映像调用一次完成块,然后用最后的映像调用一次。

所以你应该至少有两次回调。由于您得到的是四个回调,而不是两个回调,所以我想您要么会收到错误(所以请检查"error“param是否告诉您任何有用的信息),要么您正在刷新大型图像,并在此过程中获得了一些进度更新。无论如何,最后一个回调将包含您想要的刷新图像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31292184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档