2011-08-29 18 views
5

Znalazłem to ostatnie słowo z podwójnymi cytatami. Ale dlaczego?NSLog - Dziwne zachowanie

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

wyjściowa:

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

Co to jest ** aArr **? – Nekto

+0

aArr - NSMutableArray – Voloda2

Odpowiedz

7

Wydaje się, że ze względu na specjalny znak - w kluczu Ana-Lucia, wyświetla go w podwójnych cudzysłowach. Może być tak, ponieważ pokazuje, że klucz jest pojedynczym słowem. Jeśli twój klucz zawiera tylko alphabets, taki jak "AnaLucia", wyświetli go bez cudzysłowu.

Klawisz jest wyświetlany w podwójnych cudzysłowach, jeśli zawiera znaki inne niż alphabets, nawet jeśli jest to underscore(_) lub space.

7

Bo to nie jest ściśle alfanumeryczny i tylko jedno słowo. Wypróbuj NSArray *array = [NSArray arrayWithObjects:@"abc", @"123", @"$abc", @"a-b-c", @"a b c", nil];, zobaczysz, że tylko pierwsze dwa nie są cytowane. To tylko wybór do wykonania od faceta, który napisał kod opisu.