为什么这张图片 link 没有显示在 ios 的 UIimageView 中?

Why this image link not showing up in UIimageView in ios?

为什么这张图片 link 没有显示在 ios 的 UIimageView 中?

var url = URL(string: "https://bill.ps/uploads/32065621a012e53f749c15b0a8468d71swift_file5486.png")

代码

func fetchImage(_ photoURL: URL?) { 
    guard let imageURL = photoURL else { return } 
    DispatchQueue.global(qos: .userInitiated).async { 
        do { 
            let imageData: Data = try Data(contentsOf: imageURL) 
            DispatchQueue.main.async { 
                let image = UIImage(data: imageData)
                print(image)
            } 
        } catch { 
            print("Unable to load data: (error)")
        } 
    } 
}

Image Link

首先,这些东西你真的应该用URLSessionDownloadTask

无论如何,图像 link 似乎可以正常工作,因此获取和显示它应该没有任何问题。

以下是您可以检查的内容 -

  1. catch里面的print是否被执行?
  2. 收到数据后print(image)会打印什么?
  3. 您的 UIImageView 实例是否在屏幕上可见并且在 运行 时具有非零 widthheight 值?

您必须在 运行 时使用 View Hierarchy Debugger 确保第 3 点。

图像本身的问题不在 link 或您的代码中,我已经尝试过相同的图像并且在很多情况下它根本没有出现,但同时出现了另一张图像,如果可以,请尝试更改它,它会起作用,我什至下载了它并尝试将其手动放入资产文件中,但效果不佳,请查看下面的图片:

1- 在资产中本地添加图像

2- 图片未出现在 运行

我与后端开发人员核实了这个问题,它与 api 服务器上的 WAF header 有关。

WAF 阻止请求 header。