从磁盘加载图像 - 功能修改 swift

loadImageFromDisk - function modyfication swift

我使用下面的代码从磁盘加载下载的图像,当文件存在时我可以将它作为图像加载。如果它没有将 returns 显示为 nil。

我如何修改代码以从名为 default.png 的资产文件夹中加载占位符图像来替换 return nil。因此,不是 returning nil,而是总是有一个图像 return,要么是下载的图像正在尝试加载,要么如果它不存在,我自己的资产图像。

func loadImageFromDiskWith(fileName: String) -> UIImage? {
  let documentDirectory = FileManager.SearchPathDirectory.documentDirectory

    let userDomainMask = FileManager.SearchPathDomainMask.userDomainMask
    let paths = NSSearchPathForDirectoriesInDomains(documentDirectory, userDomainMask, true)

    if let dirPath = paths.first {
        let imageUrl = URL(fileURLWithPath: dirPath).appendingPathComponent(fileName)
        let image = UIImage(contentsOfFile: imageUrl.path)
        return image
    }
    return nil
}

您可以按照以下方式进行 -

func loadImageFromDiskWith(fileName: String) -> UIImage {
  let documentDirectory = FileManager.SearchPathDirectory.documentDirectory

    let userDomainMask = FileManager.SearchPathDomainMask.userDomainMask
    let paths = NSSearchPathForDirectoriesInDomains(documentDirectory, userDomainMask, true)
    var image = UIImage(named: "default") // Make sure there must be "default.png" in your main bundle.
    if let dirPath = paths.first {
        let imageUrl = URL(fileURLWithPath: dirPath).appendingPathComponent(fileName)
        if FileManager.default.fileExists(atPath: imageUrl.path) { //Check here for file existence. It won't crash.
              image = UIImage(contentsOfFile: imageUrl.path)
         }
    }

    return image
}