Swift SDWebImage 中的错误

Error in Swift SDWebImage

我在我的 Swift 应用程序中使用 SDWebImage 将图像下载到我的 tableview,但我遇到了一个我不知道如何修复的简单错误。我完成了我的项目从 Objective C 到 Swift 的转换。

我正在使用的代码

 let imgURL = (testObject.value(forKey: "testURL"))
 self.myImageView.sd_setImage((with: imgURL as! URL!), placeholderImage: UIImage(imageNamed: "no-image.png"))
 self.myImageView.contentMode = .scaleAspectFit

错误:

Argument labels '(imageNamed:)' do not math any available overloads

这可能是 Swift 3 的变化,但应该是 UIImage(named: "no-image.png")

它对我有用。 试试这个:-

self.imageView.sd_setImage(with: URL(string: item.image!))

您需要将字符串转换为 URL 才能正常工作。

您可以尝试为 UIImage 初始化程序正确命名,并将转换改进为 URL:

let imgURL = testObject.value(forKey: "testURL") as! URL
self.myImageView.sd_setImage(with: imgURL, placeholderImage: UIImage(named: "no-image.png"))

但更好的是,您可以为 "no-image":

使用图像文字
let imgURL = testObject.value(forKey: "testURL") as! URL
self.myImageView.sd_setImage(with: imgURL, placeholderImage: #imageLiteral(resourceName: "no-image.png"))

最好避免强制解包。

let imgURL = testObject.value(forKey: "testURL") as? URL
self.myImageView.sd_setImage(with: imgURL, placeholderImage: #imageLiteral(resourceName: "no-image.png"))

[更新:在作者声称值是一个字符串之后]

如果 "testURL" 的值是字符串,则不能将其解包为 URL。此代码可能有帮助:

let imgString = testObject.value(forKey: "testURL") as? String ?? ""
self.myImageView.sd_setImage(with: URL(string: imgString), placeholderImage: #imageLiteral(resourceName: "no-image.png"))