2011-12-13 12 views
8

En el diccionario llamado dict el valor par de claves es:¿Cómo obtener el objeto para la clave de NSDictionary?

"alba \ u2019s ventana" = "Un modelo en el WestIndies.";

Y para enviar objectForKey: obtengo el hilo como "ventana de alba". Cuando envío como sigue:

[dict objectForKey: alba's window];

No obtengo nada, muestra nulo.

+2

¿Y si lo hace '[dict objectForKey: @ "ventana del alba"];' o ' [dict objectForKey: @ "alba \ U2019s window"]; '? – Cyrille

Respuesta

16

Para empezar, es posible que desee hacer que una cadena real, así:

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

Tenga en cuenta también que no es \U2019'; pero , que es un personaje diferente por completo.

Y, en general, ajustarse a [a-zA-Z0-9]+ para claves de diccionario es probablemente una buena idea, a menos que esté insertando y recuperando mediante programación utilizando exactamente la misma cadena que una clave.

+0

estoy usando eso solamente. Está mostrando diff aquí. Dímelo solo. – Univer

+4

No entiendo a qué se refiere, o incluso lo que intenta decir. Hasta que lo haga, no puedo ayudarte, desafortunadamente. –

+0

recibí la solución 'no admitiré en mac así que cambié por' entonces funciona bien – Univer

2

Asegúrese de que su dict no sea nulo; enviar un mensaje a un objeto nulo fallará silenciosamente y devolverá null.

Otra forma de verificar sus llaves/valores es simplemente NSLog(@"%@",dict); y esto le mostrará los contenidos del diccionario. Tenga en cuenta que este resultado solo muestra comillas alrededor de valores cuando el valor contiene un espacio.

Además, asegúrese de estar utilizando los mismos pares de cadenas que la clave: parece que está usando "alba\U2019s window" además de "alba's window".

5

Desde iOS 6 en adelante, un método conveniente para configurar y acceder al objeto para una clave de una NSDictionary es:

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

//Accessing the object 
NSString *str = dictionary[@"someKey"]; 
Cuestiones relacionadas