Я определяю настраиваемый тип ошибки с синтаксисом Swift 3 и хочу предоставить удобное для пользователя описание ошибки, возвращаемой свойством localizedDescription
объекта Error
. Как я могу это сделать?
public enum MyError: Error {
case customError
var localizedDescription: String {
switch self {
case .customError:
return NSLocalizedString("A user-friendly description of the error.", comment: "My error")
}
}
}
let error: Error = MyError.customError
error.localizedDescription
// "The operation couldn’t be completed. (MyError error 0.)"
Есть ли способ для localizedDescription
вернуть мое собственное описание ошибки («Удобное для пользователя описание ошибки»)? Обратите внимание, что объект ошибки здесь имеет тип Error
, а не MyError
. Я, конечно, могу передать объект в MyError
(error as? MyError)?.localizedDescription
но есть ли способ заставить его работать без преобразования в мой тип ошибки?