ios - 将相机照片保存到文件位置 - Swift Xcode
问题描述
在我的应用程序中,我允许用户使用相机拍照。当didFinishPickingMedia执行时,我想将照片保存到用户之前在应用程序中选择的FILE LOCATION (url... modelController.saveLocation )。文件位置可能是文件目录、Dropbox 等中的文件夹。尽管我在网上努力阅读,但我似乎无法弄清楚如何做到这一点。其他教程似乎正在拍摄资产文件夹中的照片并将其保存在某处,而不是刚刚拍摄的照片。
我试过这段代码,但它不起作用。由于某些错误,调用了 catch 语句中的代码。
let url = modelController.saveLocation[0].appendingPathComponent("\(saveLocationName.description).jpg")
if let data = image.jpegData(compressionQuality: 1.00) {
do {
try data.write(to: url)
} catch {
print("Unable to write image data to disk")
selectNewFileLocation()
}
}
请用代码解释你的答案。这可能是一个非常简单的解决方案,但我是一个菜鸟。提前感谢您的帮助!
解决方案
好久不见,我想你已经找到答案了。但这是针对遇到这个问题的人。由于某些原因,在我将格式更改为png格式而不是jpeg后,它可以工作,但是在再次使用jpeg格式后,它也可以工作。我真的不知道为什么,因为现在我无法重现这个问题。
let url = modelController.saveLocation[0].appendingPathComponent("\(saveLocationName.description).png")
if let data = image.pngData() {
do {
try data.write(to: url)
} catch {
print("Unable to write image data to disk")
selectNewFileLocation()
}
}
推荐阅读
- javascript - Sails 用户状态在线/离线 V1
- mongodb - 查询中的 Mongoose 填充方法返回空数组
- javascript - 合并来自两个不同对象数组的具有相应键值的对象
- itext - 阅读受保护的 pdf,xss 设置过低和循环依赖
- php - 隐藏在 Woocommerce 中默认选择具有唯一变体的可变产品下拉列表
- python - python中使用函数multiprocessing.Pool的奇怪结果?
- java - java.lang.ClassNotFoundException: org.jsoup.Jsoup
- ios - 在不同计算机上打开项目时,找不到生成的 Coredata 类和扩展的构建输入文件
- javascript - 数组中缺少数字
- oracle - ORA-06503:PL/SQL:函数返回无值,第 21 行 ORA-06512:第 5 行