Je définis un type d'erreur personnalisé avec la syntaxe Swift 3 et je veux fournir une description conviviale de l'erreur qui est renvoyée par la localizedDescriptionpropriété de l' Errorobjet. Comment puis-je le faire?
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.)"
Existe-t-il un moyen localizedDescriptionde renvoyer ma description d'erreur personnalisée ("Une description conviviale de l'erreur.")? Notez que l'objet d'erreur ici est de type Erroret non MyError. Je peux, bien sûr, lancer l'objet sur MyError
(error as? MyError)?.localizedDescription
mais existe-t-il un moyen de le faire fonctionner sans transtyper mon type d'erreur?
MyErroruneErrorpremière et la prolongez avecLocalizedErrorplus tard? Y a-t-il une différence si vous en avez fait unLocalizedErroren premier lieu?