【发布时间】:2021-02-04 22:33:55
【问题描述】:
在我的应用中,我允许用户使用相机拍照。当 didFinishPickingMedia 执行时,我想将照片保存到 FILE LOCATION (url...modelController.saveLocation ) 之前在应用程序中选择的用户。文件位置可能是文件目录、Dropbox 等中的文件夹。尽管我在网上努力阅读,但我似乎无法弄清楚如何做到这一点。其他教程似乎正在拍摄 assets 文件夹中的照片并将其保存在某处,而不是刚刚拍摄的照片。
我试过这段代码,但它不起作用。由于某些错误,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()
}
}
请用代码解释你的答案。这可能是一个非常简单的解决方案,但我是一个菜鸟。提前感谢您的帮助!
【问题讨论】:
-
在
catch块内,你能做到print("Unable to write image data to disk: \(error)")吗?这将打印出错误。 -
您无法将文件保存在您想要的任何位置...有某些权限等。检查
FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)是否有效。如果是这样,问题不在于您保存的如何,而是您保存的where