Swift 3 的 'Data' 类型是否有等效的 writeToFile?
Is there a writeToFile equivalent for Swift 3's 'Data' type?
我有一些代码 returns 新的 iOS 10 / Swift 3 NSData 替换(?)类型:Data
if let jpegData = UIImageJPEGRepresentation(newImage, 0.8) { ... }
我想将此图像写入磁盘,但是 NSData 的 writeToFile:
方法不存在此 class。它确实有一个 writeToURL:
方法,但它似乎不适用于文件路径(和附加组件)。
任何人都可以阐明我现在将如何做到这一点,就像 Swift 2:
中的情况一样
jpegData.writeToFile(imagePath, atomically: true)
谢谢!
使用write(to: fileURL)
。
例如:
let fileURL = try! FileManager.default
.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
.appendingPathComponent("test.jpg")
do {
try jpegData.write(to: fileURL, options: .atomic)
} catch {
print(error)
}
或者,如果您真的受困于 path
,请将其转换为 URL
:
do {
try data.write(to: URL(fileURLWithPath: path), options: .atomic)
} catch {
print(error)
}
但是,一般来说,现在最好在整个代码中使用 URL
引用,而不再使用路径字符串。
我有一些代码 returns 新的 iOS 10 / Swift 3 NSData 替换(?)类型:Data
if let jpegData = UIImageJPEGRepresentation(newImage, 0.8) { ... }
我想将此图像写入磁盘,但是 NSData 的 writeToFile:
方法不存在此 class。它确实有一个 writeToURL:
方法,但它似乎不适用于文件路径(和附加组件)。
任何人都可以阐明我现在将如何做到这一点,就像 Swift 2:
中的情况一样jpegData.writeToFile(imagePath, atomically: true)
谢谢!
使用write(to: fileURL)
。
例如:
let fileURL = try! FileManager.default
.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
.appendingPathComponent("test.jpg")
do {
try jpegData.write(to: fileURL, options: .atomic)
} catch {
print(error)
}
或者,如果您真的受困于 path
,请将其转换为 URL
:
do {
try data.write(to: URL(fileURLWithPath: path), options: .atomic)
} catch {
print(error)
}
但是,一般来说,现在最好在整个代码中使用 URL
引用,而不再使用路径字符串。