尝试将以下内容保存image到本地存储。
if let imageData: Data = UIImagePNGRepresentation(self.emitterImageView.image!) {
try! imageData.write(to: savedImagePath, options: [])
}
Run Code Online (Sandbox Code Playgroud)
但由于以下错误而崩溃。
线程 1:致命错误:“尝试!” 表达式意外引发错误:Error Domain=NSCocoaErrorDomain Code=4“文件“PHDEmitterImage1.png”不存在。UserInfo={NSFilePath=/private/var/mobile/Containers/Data/Application/41D876EC-7D65-4AB1-820E-EDE46FAE8675/tmp/PHDEmitterBackup/PHDEmitterImage1.png, NSUnderlyingError=0x15bf21792文件或目录"}}
问题出在哪里?
保存的图像路径是 file:/private/var/mobile/Containers/Data/Application/41D876EC-7D65-4AB1-820E-EDE46FAE8675/tmp/PHDEmitterBackup/PHDEmitterImage1.png
自定义路径
func emitterBackupDirectoryPath() -> String? {
let dataPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.absoluteString
//let dataPath = URL(fileURLWithPath: documentsDir).appendingPathComponent("/PHDEmitterBackup").absoluteString
//let dataPath = documentsDir?.appendingPathComponent("/PHDEmitterBackup").absoluteString
if !FileManager.default.fileExists(atPath: dataPath!) { //if does not exist
do {
try FileManager.default.createDirectory(atPath: dataPath!, withIntermediateDirectories: false, attributes: nil) //Create folder
} catch {
}
}
return dataPath
}
Run Code Online (Sandbox Code Playgroud)
解决帮助上述评论的问题,我在这里说明,因为它可能对某人有所帮助。问题在于 dataPath 变量是一个URL. 要将路径作为字符串获取,需要使用path属性,而不是absoluteString.
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |