尝试从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路径获取图像时出错的主要内容,如果未能解决你的问题,请参考以下文章