2011-12-13 17 views
8

Nel dizionario di nome dict la coppia di valori chiave è:Come ottenere oggetto per chiave da NSDictionary?

"alba \ finestra u2019s" = "Un modello in westindies.";

E per inviare objectForKey: Ho ottenuto la stringa come "finestra di alba". Quando invio come segue:

[dict objectForKey: finestra di alba];

Non ricevo nulla, è vuoto.

+2

Che cosa succede se si fa '[dict objectForKey: @ "Finestra di alba"];' o ' [dict objectForKey: @ "alba \ U2019s window"]; '? – Cyrille

risposta

16

Per cominciare, si potrebbe desiderare di fare che uno stringa effettiva, in questo modo:

[dict objectForKey:@"alba's window"]; 

Si noti inoltre che non è \U2019'; ma , che è un personaggio completamente diverso.

E più in generale, attenersi a [a-zA-Z0-9]+ per le chiavi del dizionario è probabilmente una buona idea, a meno che non si stia inserendo e recuperando a livello di codice utilizzando la stessa stessa stringa di una chiave.

+0

sto usando che solo.it sta visualizzando diff here.tell me solo per quello. – Univer

+4

Non riesco a capire a cosa ti riferisci o in effetti quello che stai cercando di dire. Fino a quando lo farò, non posso aiutarti, purtroppo. –

+0

ho la soluzione 'non supporta in mac così ho sostituito con' quindi funziona bene – Univer

2

Assicurati che il tuo dict non sia nullo; l'invio di un messaggio a un oggetto nullo fallirà silenziosamente e restituirà null.

Un altro modo per verificare la chiave/i valori è semplicemente NSLog(@"%@",dict); e questo mostrerà il contenuto del dizionario. Si noti che questo output mostra solo virgolette attorno ai valori quando il valore contiene uno spazio.

Inoltre, assicurati di utilizzare le stesse coppie di stringhe della chiave: sembra che tu stia utilizzando "alba\U2019s window" oltre a "alba's window".

5

Dal iOS6 in poi, un metodo conveniente per l'impostazione e accedere all'oggetto per una chiave da un NSDictionary è:

//Setting the object in NSMutableDictionary 
dictionary[@"someKey"] = @"someString"; 

//Accessing the object 
NSString *str = dictionary[@"someKey"]; 
Problemi correlati