Weißt du, ob es eine schöne Möglichkeit gibt, eine NSError
's localizedDescription nach ihrer Instanziierung zu setzen / ändern, als sie neu zu erstellen? Ich habe keine gefunden.
NSError
deklariert keine Setter für seine Eigenschaften. Daraus können Sie ableiten, dass es wahrscheinlich nicht geändert werden soll, nachdem es erstellt wurde. Ich könnte sehen, eine Kategorie in NSError
schreiben, die einen Fehler aus einem anderen Fehler, aber mit einem anderen Wert für den Schlüssel NSLocalizedDescriptionKey
erstellen würde.
Die NSError
Klasse ist - wie viele Cocoa-Klassen - unveränderlich.
Das Dokument gibt jedoch für -localizedDescription
Folgendes an:
Standardmäßig gibt diese Methode das Objekt im Benutzerinformationswörterbuch zurück für den Schlüssel NSLocalizedDescriptionKey. Wenn das Benutzerinfo-Wörterbuch enthält keinen Wert für NSLocalizedDescriptionKey, einen Standardwert Zeichenfolge wird aus der Domäne und dem Code erstellt.
Verwenden Sie also einfach errorWithDomain:code:userInfo:
, um eine neue Instanz zu erstellen oder eine entsprechende Benutzerinfo zu kopieren und bereitzustellen.
Hier ist eine weitere nette Einführung zu die NSError-Klasse.
Wenn Sie Ihren NSError manuell unter Angabe von userInfo
erstellen, können Sie den Wert dieses Wörterbuchs für den Schlüssel NSLocalizedDescriptionKey
neu schreiben. Übergeben Sie einfach error.userInfo
an NSMutableDictionary oder die Klasse, die Sie beim Erstellen des NSError-Objekts verwendet haben
Tags und Links ios cocoa cocoa-touch nserror