好的,所以这个让我挠了一会儿。
我有一个写到磁盘的png文件。我通过以下方式获取数据:
let data = UIImagePNGRepresentation(scaledImage!)
let filename = getDocumentsDirectory().appendingPathComponent("\(record.uid!).png")
我试试看,一切似乎都有效。生成的文件名是:
file:///var/mobile/Containers/Data/Application/C6B796E8-2DB6-45A4-9B18-EF808B8CA3CA/Documents/580420d51800cd826a7e217c.png
当我尝试从磁盘加载该图像时出现问题。
当我得到文档目录中所有文件的列表时,我得到:
[file:///private/var/mobile/Containers/Data/Application/C6B796E8-2DB6-45A4-9B18-EF808B8CA3CA/Documents/580420d51800cd826a7e217c.png]
我能看到的唯一区别是私人'文件路径的一部分。当我尝试使用文件路径检查文件是否存在时,我会附加文件名(没有私有部分的文件),我得到了错误。
我错过了什么?
答案 0 :(得分:-1)
Swift 3/4代码
我们假设方法getDocumentsDirectory()
定义如下
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = paths[0]
return documentsDirectory
}
为了保存图像
let data = UIImagePNGRepresentation(scaledImage!)
let filename = getDocumentsDirectory().appendingPathComponent("\(record.uid!).png")
try? data?.write(to: filename)
您的图像保存在文档目录
中现在为了加载它
let imagePath = getDocumentsDirectory().appendingPathComponent("\(record.uid!).png").path
let fileManager = FileManager.default
if fileManager.fileExists(atPath: imagePath){
print("Image Present")
//load it in some imageView
}else {
print("No Image")
}