loadImageFromDisk--函数修改 swift

问题描述 投票:0回答:1

im使用下面的代码从磁盘上加载下载的图像,当文件存在时,我可以加载它作为图像。如果它不存在,图像返回为nil。

我怎样才能修改代码,用从我的asset文件夹中加载一个名为default.png的占位图来代替返回nil。因此,不是返回nil,而是总是有一个图像返回,要么是下载的一个试图加载,或者如果它不存在,我自己的资产图像。

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
}
swift xcode image loadimage
1个回答
1
投票

你可以做如下 -

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
}
© www.soinside.com 2019 - 2024. All rights reserved.