Ändern Sie NSError localizedDescription

9

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.

    
user3250560 11.03.2014, 20:42
quelle

3 Antworten

7

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.

    
Simon Goldeen 11.03.2014, 20:55
quelle
15

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.

    
cacau 12.03.2014 09:47
quelle
5

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

    
Kirill Gamazkov 08.05.2014 13:25
quelle

Tags und Links