2011-08-29 32 views
5

Encontré que la última palabra mostrada con comillas dobles. ¿Pero por qué?NSLog - Comportamiento extraño

NSDictionary *guide2 = [NSDictionary dictionaryWithObjectsAndKeys:kArr, @"Kate", aArr, @"Ana-Lucia", kArr, @"John", nil]; 
NSArray *array = [guide2 allKeys]; 
NSLog(@"%@", [array description]); 

de salida:

(
John, 
Kate, 
"Ana-Lucia" 
) 
+0

¿Qué es ** aArr **? – Nekto

+0

aArr - NSMutableArray – Voloda2

Respuesta

7

Parece que debido al carácter especial - en la clave Ana-Lucia, se muestra entre comillas dobles. Puede ser que esto se deba a para mostrar que la clave es una sola palabra. Si su clave contiene solo alphabets como "AnaLucia", la mostrará sin comillas.

La clave se muestra entre comillas dobles si contiene caracteres que no sean alphabets, incluso si es un underscore(_) o space.

7

Debido a que no es estrictamente alfanumérica y sólo una palabra. Pruebe NSArray *array = [NSArray arrayWithObjects:@"abc", @"123", @"$abc", @"a-b-c", @"a b c", nil];, verá que solo los primeros dos no están citados. Es solo una opción de implementación del tipo que escribió el código de descripción.