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 localizedDescription
propriété de l' Error
objet. 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 localizedDescription
de renvoyer ma description d'erreur personnalisée ("Une description conviviale de l'erreur.")? Notez que l'objet d'erreur ici est de type Error
et 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?
MyError
uneError
première et la prolongez avecLocalizedError
plus tard? Y a-t-il une différence si vous en avez fait unLocalizedError
en premier lieu?