do { try FileManager.default.removeItem(at: .documentsDirectory.appendingPathComponent("aaa")) } catch let error as NSError { if error.domain == "NSCocoaErrorDomain", error.code == 4 { print("削除しようとしたファイルが見つからなかった") } }
こちらの記事を読んでCocoaError.fileNoSuchFileでcatchできることを知りました。 https://developer.apple.com/documentation/swift/handling-cocoa-errors-in-swift
do { try FileManager.default.removeItem(at: .documentsDirectory.appendingPathComponent("aaa")) } catch CocoaError.fileNoSuchFile { print("削除しようとしたファイルが見つからなかった") }
後者のほうが見やすいのでこれは良いのですが、 Error(NSError)からCocoaError.fileNoSuchFileにたどり着く方法が分からずじまいです。 せいぜいドメイン(NSCocoaErrorDomain)とコード(4)までしか分からないのですが、何かいい方法があるのでしょうか? NS_ERROR_ENUM
をキーに抽出しているので抜けが多々ありそうですが (edited)