Sto definendo un tipo di errore personalizzato con la sintassi di Swift 3 e desidero fornire una descrizione intuitiva dell'errore restituito dalla localizedDescriptionproprietà Errordell'oggetto. Come posso farlo?
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.)"
Esiste un modo per localizedDescriptionrestituire la mia descrizione dell'errore personalizzata ("Una descrizione user-friendly dell'errore")? Si noti che l'oggetto errore qui è di tipo Errore non MyError. Ovviamente, posso lanciare l'oggetto su MyError
(error as? MyError)?.localizedDescription
ma c'è un modo per farlo funzionare senza trasmettere al mio tipo di errore?
MyErrorunErrorprimo ed estendilo conLocalizedErrordopo? C'è una differenza se l'hai reso unLocalizedErrorprimo?