最佳答案
我用Swift 3语法定义了一个自定义错误类型,我想提供一个用户友好的错误描述,该错误由Error
对象的localizedDescription
属性返回。我该怎么做呢?
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
但是有没有一种方法可以使它工作而不强制转换为错误类型呢?