Verwendung eines int als NSDictionary-Schlüssel?

9

Ich versuche, auf mein Wörterbuchobjekt zuzugreifen. Hier ist mein Code:

%Vor%

Das Problem ist, dass objectForKey ein Objective-C-Objekt, nicht ein int, nehmen soll. Ich habe versucht, das Tag in eine NSNumber mit [NSNumber numberWithInt:tag] zu verpacken und dieses in objectForKey: zu übergeben, aber es gibt ein Null-Objekt zurück.

Irgendwelche Ideen? Danke

    
user339946 12.02.2012, 22:37
quelle

2 Antworten

14

Wenn Sie Zahlen als Zeichenfolgen für Wörterbuchschlüssel verwenden, sollten Sie das int in ein NSString oder NSNumber umwandeln, um es als Wörterbuchschlüssel zu verwenden. So machen Sie das für einen String:

%Vor%

Wie @Hughes BR in einem Kommentar erwähnt, besteht die Anforderung für das Schlüsselobjekt darin, dass es dem NSCopying -Protokoll entsprechen muss.

    
bneely 12.02.2012, 22:39
quelle
5

Ich benutze NSNumbers ohne Probleme, muss aber die üblichen Methoden setObject: forKey: oder setValue: forKey: vermeiden. Das würde eine Warnung erzeugen.

Es wird jedoch keine Warnung erstellt (und der Code funktioniert wie vorgesehen) mit

%Vor%

Abruf ist einfach:

%Vor%     
Peter Kämpf 10.08.2014 12:08
quelle

Tags und Links