しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

【Swift】ファイル書き込みで「Error Domain=NSCocoaErrorDomain Code=518 "指定されたURLタイプがサポートされていないため、ファイルを保存できませんでした。」エラーが出た時の対応

表題のエラーが出た時の対処法です。
今回は下のように画像をファイル保存をしようとしたら発生しました。

let path = "/xxx/yyy/zzz"
let image = UIImage()
let data = UIImageJPEGRepresentation(image, 80)
if let url = URL(string: path) {
    try? data?.write(to: URL(string: path)!)
}

原因はURL(string: path)で生成したURLにスキーム(file://)が入ってない事でした。
下のようにURL(string: path)の代わりにURL(fileURLWithPath: path)を使うようにしたら保存する事ができました。

let path = "/xxx/yyy/zzz"
let image = UIImage()
let data = UIImageJPEGRepresentation(image, 80)
try? data?.write(to: URL(fileURLWithPath: path))