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

标签 arrays swift uiimage nsdocumentdirectory

我正在尝试在 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 目录路径:字符串{

    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

    }
}

关于arrays - 尝试从 DocumentDirectory 路径获取图像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39335577/

相关文章:

properties - Swift:类中的计算类型属性

iPhone:将不同尺寸的 UIImageView 屏蔽为方形尺寸

ios - 如何在 UIImage 上方绘制文本以创建新图像

c++ - C- 不兼容的指针类型用“int”类型的表达式初始化 'int *'

ios - 在我的 iOS 应用程序中,如何设置铃声(默认电话)、闹钟(默认闹钟)、默认通知、联系人……?

java - 字符串数组的组合

ios - 降低解析服务器 Swift 每月的总请求数

ios - 如何将 AVCaptureStillImageOutput 转换为 UIImage 并另存为 NSData?

任何使用 malloc 的指针都可以被视为数组吗?

尝试查找文件中最常出现的单词时,Java ArrayIndexOutOfBoundsException 不断出现