SDWebImage 和 Swift
SDWebImage and Swift
我已经成功地将 SDWebImage
(用 Objective-C
编写)合并到我的 Swift
项目中 - 但它仍然表现得有点滑稽。具体来说,它在以下 Closure
:
中的 if
语句中给我一个错误
let completionBlock: SDWebImageCompletionBlock! = {
(image:UIImage!, error: NSError!, cacheType:SDImageCacheType, imageURL:NSURL!) -> Void in
if (image && cacheType == SDImageCacheType.SDImageCacheTypeNone) {
cell.productImageView.alpha = 0.0
UIView.animateWithDuration(1.5, animations: {
cell.productImageView.alpha = 1.0
})
}
}
cell.productImageView.sd_setImageWithURL(imageURL!, placeholderImage:UIImage(named:"Icon120pix.png"), completed: completionBlock)
我在 if 语句中遇到的错误是:Use of unresolved identifier 'SDImageCacheTypeNone'
这没有意义,因为 SDImageCacheTypeNone
是 SDImageCacheType typedef
中定义的值之一。
顺便说一句,如果我把那个 if
语句去掉,只留下里面的语句,一切正常。
所以你知道我在这里做错了什么吗?
查看 Enumerations
部分中的此文档,以更深入地解释为什么 Swift 以不同方式显示 Objective-C 枚举。
在您的代码示例中,解决问题的方法是使用:
SDImageCacheType.None
而不是
SDImageCacheType.SDImageCacheTypeNone
我已经成功地将 SDWebImage
(用 Objective-C
编写)合并到我的 Swift
项目中 - 但它仍然表现得有点滑稽。具体来说,它在以下 Closure
:
if
语句中给我一个错误
let completionBlock: SDWebImageCompletionBlock! = {
(image:UIImage!, error: NSError!, cacheType:SDImageCacheType, imageURL:NSURL!) -> Void in
if (image && cacheType == SDImageCacheType.SDImageCacheTypeNone) {
cell.productImageView.alpha = 0.0
UIView.animateWithDuration(1.5, animations: {
cell.productImageView.alpha = 1.0
})
}
}
cell.productImageView.sd_setImageWithURL(imageURL!, placeholderImage:UIImage(named:"Icon120pix.png"), completed: completionBlock)
我在 if 语句中遇到的错误是:Use of unresolved identifier 'SDImageCacheTypeNone'
这没有意义,因为 SDImageCacheTypeNone
是 SDImageCacheType typedef
中定义的值之一。
顺便说一句,如果我把那个 if
语句去掉,只留下里面的语句,一切正常。
所以你知道我在这里做错了什么吗?
查看 Enumerations
部分中的此文档,以更深入地解释为什么 Swift 以不同方式显示 Objective-C 枚举。
在您的代码示例中,解决问题的方法是使用:
SDImageCacheType.None
而不是
SDImageCacheType.SDImageCacheTypeNone