尝试从DocumentDirectory路径获取图像时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试从DocumentDirectory路径获取图像时出错相关的知识,希望对你有一定的参考价值。

我正在尝试在DocumentDirectory路径中存储一组图像 这是我存储图像的代码

 let img = photo //Change to be from UIPicker
    let data = UIImagePNGRepresentation(img!)!
    do {
        let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
        try data.writeToFile("(documentsPath)(myImage)", options: [])

    } catch {
        print("Error")
    }

这就是我获取图像的方式

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
        let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
        let readData = try NSData(contentsOfFile: "(documentsPath)(myImage)", options: [])
        let retreivedImage = UIImage(data: readData)
        image = retreivedImage
        photos.append(image!)

    }

    catch {
        print("Error")
    }

我的问题是当我保存第一张图片时我可以加载它但是当我添加更多1张图像并保存它时我无法重新加载它

答案

我想这会对你有所帮助。这段代码对我有用。

您可以使用swift3.0将图像下载并保存到文档目录,如下所示

/// Get Document directory path

var directoryPath:String {

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

    print("Base Url: (baseUrl.first!)")

    return baseUrl.first!
}

///将图像添加到Document目录

func addImage(_ image:UIImage,name:String) - > Bool {

    var path = directoryPath

    path.append("/(name)")

    return FileManager.default.createFile(atPath: path, contents: UIImageJPEGRepresentation(image, 1.0), attributes: nil)
}

/// fetch a image from document directory

func fetchImage(name:String) - > UIImage? {

    var imagePath = directoryPath

    imagePath.append("/(name)")

    if  FileManager.default.fileExists(atPath: imagePath) {

        return UIImage(contentsOfFile: imagePath)!

    } else {

        return nil

    }
}

以上是关于尝试从DocumentDirectory路径获取图像时出错的主要内容,如果未能解决你的问题,请参考以下文章

将文件 url 从 documentDirectory 加载到表视图

在Swift中获取文档目录路径

如何获取保存在文档目录中的视频缩略图

最基本的操作

如何创建从Android视频文件路径视频缩略图

在swift中从本地获取图像