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'

这没有意义,因为 SDImageCacheTypeNoneSDImageCacheType typedef 中定义的值之一。

顺便说一句,如果我把那个 if 语句去掉,只留下里面的语句,一切正常。

所以你知道我在这里做错了什么吗?

查看 Enumerations 部分中的此文档,以更深入地解释为什么 Swift 以不同方式显示 Objective-C 枚举。

Apple Swift Documents

在您的代码示例中,解决问题的方法是使用:

SDImageCacheType.None

而不是

SDImageCacheType.SDImageCacheTypeNone