【发布时间】:2016-09-17 14:36:40
【问题描述】:
我正在使用 saveImage 保存图像。
func saveImage (image: UIImage, path: String ) -> Bool{
let pngImageData = UIImagePNGRepresentation(image)
//let jpgImageData = UIImageJPEGRepresentation(image, 1.0) // if you want to save as JPEG
print("!!!saving image at: \(path)")
let result = pngImageData!.writeToFile(path, atomically: true)
return result
}
新信息:
保存文件不能正常工作(打印“[-] ERROR SAVING FILE”)--
// save your image here into Document Directory
let res = saveImage(tempImage, path: fileInDocumentsDirectory("abc.png"))
if(res == true){
print ("[+] FILE SAVED")
}else{
print ("[-] ERROR SAVING FILE")
}
为什么 saveImage 函数不保存图像?访问权?
旧信息:
调试信息说:
!!!saving image at: file:///var/mobile/Applications/BDB992FB-E378-4719-B7B7-E9A364EEE54B/Documents/tempImage
然后我使用检索此位置
fileInDocumentsDirectory("tempImage")
结果是正确的。
然后我使用这个路径加载文件
let image = UIImage(contentsOfFile: path)
if image == nil {
print("missing image at: \(path)")
}else{
print("!!!IMAGE FOUND at: \(path)")
}
路径是正确的,但消息是“缺少图像...”。该文件是否以某种方式无法访问或未存储?这种行为的原因可能是什么?
我正在使用 ios 7 的 iphone 4 和带有 ios 7 模拟器的 iphone 5 上测试此代码。
编辑: 1.fileInDocumentsDirectory函数
func fileInDocumentsDirectory(filename: String) -> String {
let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let fileURL = documentsURL.URLByAppendingPathComponent(filename).absoluteString
return fileURL
}
【问题讨论】:
-
在finder中查看图片,是否可用。并为图像 *.png 或 *.jpeg 添加一些扩展名。
-
不保存图像的完整路径只保存图像名称并在名称后附加实时文档目录路径。就是这样,因为文档目录路径在每次运行时都不会返回相同的值。
-
@NitinGohel 我只是保存文件,然后尝试像这样加载它 loadImageFromPath(fileInDocumentsDirectory("abc.png"))
-
fineInDocumentDirectory 是实时路径还是从数据库加载?
-
@NitinGohel 我添加了这个函数的代码。只有三行。
标签: ios swift caching file-manager image-caching