为啥我在使用 kingfisher 将图像从 JSON 加载到 tableview 时出错?
Posted
技术标签:
【中文标题】为啥我在使用 kingfisher 将图像从 JSON 加载到 tableview 时出错?【英文标题】:Why am I getting error at loading image from JSON to tableview using kingfisher?为什么我在使用 kingfisher 将图像从 JSON 加载到 tableview 时出错? 【发布时间】:2020-11-28 10:52:58 【问题描述】:我正在尝试借助 Kingfisher
库将从 JSON 响应中获得的图像加载到 tableView
中。
这是从 JSON 响应中获得的图像:
"image": "/static/restaurants/image-1593600873191.jpg"
现在我在 cellForRow
方法中编写这段代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
cell.lblName.text = arrUsers[0].data?.categories[0].name
let url = URL(string:arrUsers[0].data?.bestOffers[0].image ?? "No Url")
cell.imgName.kf.setImage(with: url)
return cell
在上面的代码中,我将图像的 JSON 响应转换为 URL,然后将其传递给 setImage
方法。
标签被设置为tableView
,但图像未加载到tableViewCell
,我在控制台中收到此错误。
please find attached the screenshot for refernce.
【问题讨论】:
/static/restaurants/ - 是在您的应用或资产目录中创建的目录吗? @Satheesh 它是资产目录,因为我刚刚收到这个值作为 json 响应。 " assets directory" 在您的应用程序中,还是使用远程 url?您需要将基本网址放在前面。 查看这个答案:***.com/a/65114085/14437411 【参考方案1】:改变这一行:
let url = URL(string:arrUsers[0].data?.bestOffers[0].image ?? "No Url")
到
let url = URL(string: "https://yourwebsiteaddress" + (arrUsers[0].data?.bestOffers[0].image ?? "No Url"))
【讨论】:
以上是关于为啥我在使用 kingfisher 将图像从 JSON 加载到 tableview 时出错?的主要内容,如果未能解决你的问题,请参考以下文章
加载图像时使用 iOS 中的 Kingfisher 库进行图像优化?
如何在 watch OS 2 中使用 Kingfisher 图像库或 AlamofireImage?
将图像从 URL 保存到库,重命名并使用 Swift 共享它
来自调试器的消息:在 UITableView/UICollectionView 中使用 gif 图像 Kingfisher 库滚动时因内存问题而终止