我正在尝试使用SDWebImage用来自API链接的图像填充uitableviewcell,问题是字符串是可选的,因为api结构中的索引可能有也可能没有图像。这是代码:
let imageString = content[index].originalImageUrl
cell.theImageView.sd_setImage(with: URL(string: imageString!), placeholderImage: UIImage(named: "placeholder.png"))
问题似乎是,如果originalImageURL为Nil,则由于发现nil而崩溃,因为这使我强行打开URL。我希望情况是,如果url为nil,它将使用占位符图像代替。我该怎么办?
答案 0 :(得分:2)
在无法从提供的sd_setImage
检索图像的情况下,placeholderImage
方法使用URL
,即使URL
为nil
,也是如此。
这意味着您可以简单地向URL
初始化程序提供错误的URL字符串,而不会导致运行时错误,SDWebImage将仅使用占位符。
let imageString = content[index].originalImageUrl ?? ""
cell.theImageView.sd_setImage(with: URL(string: imageString), placeholderImage: UIImage(named: "placeholder.png"))
答案 1 :(得分:2)
不要用力解包。您可以使用if let
if let imageString = content[index].originalImageUrl{
cell.theImageView.sd_setImage(with: URL(string: imageString), placeholderImage: UIImage(named: "placeholder.png"))
}else{
cell.theImageView.image = UIImage(named: "placeholder.png")
}
答案 2 :(得分:1)