【问题标题】:Can't display image from url using Kingfisher无法使用 Kingfisher 显示来自 url 的图像
【发布时间】:2020-12-03 02:50:26
【问题描述】:

我进口了翠鸟

 import UIKit
 import Kingfisher
    

这是我可以解释问题的简单代码
创建一个 imageView 并尝试从 URL 显示图像

class ViewController: UIViewController {

    @IBOutlet weak var image:UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let rawstring = "https://apis.baytelhekma.com/zinzo/public/storage/" + #"products\November2020\eUWwRjNCYCdHUjGIQiJk.png"#
        
        let url = URL(string: rawstring)
        image.kf.setImage(with: url)

       
    }


}

【问题讨论】:

  • 不要只使用 setImage(with:) 使用带有完成处理程序的方法,这可能会返回一个错误,这可能会提供有关失败原因的更多信息:github.com/onevcat/Kingfisher/blob/…
  • failure(Kingfisher.KingfisherError.imageSettingError(reason: Kingfisher.KingfisherError.ImageSettingErrorReason.emptySource)) 这是输出也是URL不是空的你可以检查它apis.baytelhekma.com/zinzo/public/storage/products\November2020\eUWwRjNCYCdHUjGIQiJk.png

标签: ios swift url kingfisher


【解决方案1】:

请再次检查您的网址,因为我尝试了另一个网址,它工作正常,您可以检查一下:

import UIKit
import Kingfisher
class ViewController: UIViewController {

    @IBOutlet weak var image:UIImageView!
    let rawstring = "https://i.insider.com/5e820b04671de06758588fb8?width=700&format=jpeg&auto=webp"

        override func viewDidLoad() {
            super.viewDidLoad()
            
            
            let url = URL(string: rawstring)
            image.kf.setImage(with: url)

           
        }

}

或者,如果有帮助,您可以制作这样的网址:

 let rawstring = "https://apis.baytelhekma.com/zinzo/public/storage/products/November2020/eUWwRjNCYCdHUjGIQiJk.png"

【讨论】:

    【解决方案2】:

    问题是网址不正确,您在地址中使用了\

    所以

    let rawstring = "https://apis.baytelhekma.com/zinzo/public/storage/" + #"products\November2020\eUWwRjNCYCdHUjGIQiJk.png"
    

    提供

    https://apis.baytelhekma.com/zinzo/public/storage/products\November2020\eUWwRjNCYCdHUjGIQiJk.png
    

    这是不正确的网址


    改成

    let rawstring = "https://apis.baytelhekma.com/zinzo/public/storage/" + #"products/November2020/eUWwRjNCYCdHUjGIQiJk.png"#
    

    或者干脆去

    let rawString = "https://apis.baytelhekma.com/zinzo/public/storage/products/November2020/eUWwRjNCYCdHUjGIQiJk.png"
    

    将解决您的问题

    【讨论】:

      猜你喜欢
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      相关资源
      最近更新 更多