对于Swift 3' Data'是否有一个writeToFile等价物?类型?

时间:2016-07-14 04:46:44

标签: swift nsdata swift3 xcode8 ios10

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

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

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

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

jpegData.writeToFile(imagePath, atomically: true) 

谢谢!

1 个答案:

答案 0 :(得分:79)

使用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引用,从而停止使用路径字符串。