Fehlerprotokoll has only one Eigenschaft lokalisierteBeschreibung. Ich habe versucht, ein benutzerdefiniertes Objekt zu erstellen, das von NSObject und Error geerbt wurde, aber ich kann localizedDescription nicht überschreiben. Wie kann ich das machen?Wie überschreiben lokalisierteBeschreibung für benutzerdefinierte Fehler in Swift 3?
Dieser Code erlaubt mir nicht, benutzerdefinierte Beschreibung zu erhalten:
class MyError: NSObject, Error {
var desc = ""
init(str: String) {
desc = str
}
override var description: String {
get {
return "MyError: \(desc)"
}
}
var localizedDescription: String {
get {
return self.description
}
}
}
func test_my_code() {
let error = MyError(str: "my test string")
let x = error as Error
print(x.localizedDescription)
}
Aufruf Funktion „test_my_code“ unerwartetes Ergebnis: „Der Vorgang konnte nicht abgeschlossen werden ...“.
Was soll ich tun, um das Ergebnis "MyError: my test string" zu erhalten?
Wollen Sie nicht brauchen 'override' ? –
können Sie nicht Error mit einer neuen Eigenschaft erweitern und lesen Sie das stattdessen? – Honey
@SunilChauhan Nr. Alles aus dem Protokoll sollte nicht außer Kraft gesetzt werden. Durch das Hinzufügen von 'override' wird die Kompilierung abgebrochen. – Speakus