2011-08-29 24 views
5

Ho trovato che l'ultima parola mostrata con virgolette doppie. Ma perché?NSLog - Strano comportamento

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

uscita:

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

Che cos'è ** aArr **? – Nekto

+0

aArr - NSMutableArray – Voloda2

risposta

7

Sembra che a causa del carattere speciale - nella chiave Ana-Lucia, lo si visualizzi tra virgolette. Può essere perché indica che la chiave è una singola parola. Se la tua chiave contiene solo alphabets come "AnaLucia", la visualizzerà senza virgolette.

Il tasto viene visualizzato tra virgolette se contiene caratteri diversi da alphabets, anche se è un underscore(_) o space.

7

Perché non è strettamente alfanumerico e una sola parola. Prova NSArray *array = [NSArray arrayWithObjects:@"abc", @"123", @"$abc", @"a-b-c", @"a b c", nil];, vedrai solo i primi due non sono quotati. È solo una scelta di implementazione da parte del ragazzo che ha scritto il codice descrittivo.