简体   繁体   中英

NSLog - Strange behavior

I found that last word showed with double quotes. But why?

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

output:

(
John,
Kate,
"Ana-Lucia"
)

Because it's not strictly alphanumeric and one word only. Try NSArray *array = [NSArray arrayWithObjects:@"abc", @"123", @"$abc", @"abc", @"abc", nil]; , you'll see only the first two are not quoted. It's just an implementation choice from the guy who wrote the description code.

It seems that because of the special character - in the key Ana-Lucia , it displays it within double-quotes. May be this is because to show that the key is a single word . If your key contains only alphabets like "AnaLucia", then it will display it without quotes.

The key is displayed in double-quotes if it contains any characters other than alphabets , even if it is an underscore(_) or space .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM