UIImage返回nil但存在

时间:2015-12-29 15:29:20

标签: ios swift uiimage

我在Swift中遇到了问题。 我尝试加载存储在DocumentsDirectory中的图像,但它返回nil。

以下是代码:

if NSFileManager.defaultManager().fileExistsAtPath(url!.path!) {
    //show image
    print("Image " + key + " exists")
    if let image =  UIImage(contentsOfFile: url!.path!){
        return image
    }
    else {
        print("error image")
        return nil
    }
}

我总是得到“错误图片”,但该文件存在。我不明白这个问题。

谢谢,

亨利

1 个答案:

答案 0 :(得分:3)

我已将您的代码重写为自己的函数,因此您无需过多地更改代码即可对其进行测试。它适用于我,这使我怀疑您的路径设置不正确或您的代码无法通过您提供的路径从其访问的文件创建图像。下面的函数将告诉您文件是否不存在UIImage中的无法创建图像。

您需要隔离错误发生的位置并从那里开始。

func getImage(url: NSURL) -> UIImage? {

    var image : UIImage?

    if let path = url.path {
        if FileManager.default.fileExists(atPath: path) {
            if let newImage = UIImage(contentsOfFile: path)  {
                image = newImage
            } else {
                print("getImage() [Warning: file exists at \(path) :: Unable to create image]")
            }

        } else {
            print("getImage() [Warning: file does not exist at \(path)]")
        }
    }

    return image
}