一尘不染

Swift 3的“数据”类型是否具有等效的writeToFile?

swift

我有一些代码可以返回新的iOS 10 / Swift 3 NSData替换(?)类型:数据

if let jpegData = UIImageJPEGRepresentation(newImage, 0.8) { ... }

我想将此映像写入磁盘,但是writeToFile:此类不存在NSData的方法。它确实有一个writeToURL:方法,但是似乎不适用于文件路径(和附加组件)。

任何人都可以澄清一下我现在该如何做,就像Swift 2中的情况一样:

jpegData.writeToFile(imagePath, atomically: true)

谢谢!


阅读 345

收藏
2020-07-07

共1个答案

一尘不染

使用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如今最好在整个代码中使用引用,而不再使用路径字符串。

2020-07-07