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

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

我正在尝试在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张图像并保存它时我无法重新加载它

arrays swift uiimage nsdocumentdirectory
1个回答
0
投票

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

您可以使用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

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.