web-dev-qa-db-ja.com

Swift 3の '​​Data'タイプに相当するwriteToFileはありますか?

新しいiOS 10を返すコードがいくつかあります/ Swift 3 NSData replacement(?)type:Data

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

このイメージをディスクに書き込みたいのですが、NSDataのwriteToFile:メソッドはこのクラスには存在しません。 writeToURL:メソッドですが、ファイルパス(および追加コンポーネント)では機能しないようです。

Swift= 2:

jpegData.writeToFile(imagePath, atomically: true) 

ありがとう!

35
Kyle Gillen

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参照を使用し、パス文字列の使用を廃止することが望ましいです。

79
Rob