Ist es in Ordnung, einen NSLocalizedString als Schlüssel in einem Wörterbuch zu verwenden?

7

Ich möchte meine Wörterbuchtasten für die Ausgabe in einer gruppierten Tabelle verwenden. Dies muss mit all meinen anderen Inhalten lokalisiert werden. Kann ich NSLocalizedString als Schlüssel verwenden?

%Vor%     
nevan king 24.06.2009, 02:54
quelle

3 Antworten

13

Sie können, da es nur eine Zeichenfolge ist. Verwenden Sie diese Technik jedoch nicht für Wörterbücher, die Sie ausschreiben und später wieder einlesen möchten, da der Benutzer die Sprache zwischenzeitlich ändern kann und Sie dann nach den falschen Schlüsseln suchen.

    
Peter Hosey 24.06.2009, 03:06
quelle
4

Wie Peter hervorhebt, interessiert das Wörterbuch nur, dass der Schlüssel ein Objekt ist, das das NSCopying-Protokoll implementiert. Ein String statifiziert das, und sein Inhalt spielt keine Rolle, soweit es die Legalität betrifft.

Vielleicht wird es in diesem Fall kein Problem geben, aber es gibt viele Male, wo ein Wort in einer Sprache zwei verschiedenen Wörtern in einer anderen Sprache zugeordnet wird, abhängig vom Kontext der Verwendung des Wortes. Umgekehrt ist auch möglich, dass zwei Wörter in einer Sprache demselben Wort in einer anderen Sprache zugeordnet werden können. Dies ist ein unwahrscheinliches Problem, aber es ist wahrscheinlich am besten, lokalisierte Werte nur als Werte zu behandeln, die Sie dem Benutzer zeigen, und einen anderen, genauer definierten Wert als Schlüssel zu verwenden.

    
Jon Hess 24.06.2009 08:07
quelle
2

Dies sieht wie ein statisches Wörterbuch aus, das einmal in Ihrem Programm erstellt und dann nicht mehr geändert wird. Daher sehe ich kein Problem damit. Ich nehme an, dass, während Sie ein nicht änderbares Wörterbuch erstellen, dieses nicht geändert und archiviert wird; Denn wenn dies der Fall ist, kann die Archivdatei nicht zwischen Benutzern mit verschiedenen Ländereinstellungen ausgetauscht werden, da die Schlüssel anders sind.

Wenn Sie jedoch lokalisierte Arrays erstellen und sie in ein Dictionary laden möchten, können Sie einfach eine lokalisierte plist-Datei verwenden, die in das Dictionary geladen wird. Es könnte Ihren Code lesbarer machen.

    
Abizern 24.06.2009 03:11
quelle