相关疑难解决方法(0)

如何在Swift中提供具有错误类型的本地化描述?

我正在使用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.)"
Run Code Online (Sandbox Code Playgroud)

有没有办法让localizedDescription我返回我的自定义错误描述("用户友好的错误描述.")?请注意,此处的错误对象是类型Error而不是MyError.当然,我可以将对象强制转换为MyError

(error as? MyError)?.localizedDescription
Run Code Online (Sandbox Code Playgroud)

但是有没有办法让它工作而不会转换为我的错误类型?

error-handling nslocalizedstring swift swift3

175
推荐指数
4
解决办法
4万
查看次数

标签 统计

error-handling ×1

nslocalizedstring ×1

swift ×1

swift3 ×1