开发者

NSLog - Strange behavior

开发者 https://www.devze.com 2023-03-31 15:57 出处:网络
I found that last word showed with double quotes. But why? NSDictionary *guide2 = [NSDictionary dictionaryWithObjectsAndKeys:kArr, @\"Kate\", aArr, @\"Ana-Lucia\", kArr, @\"John\",nil];

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

NSDictionary *guide2 = [NSDictionary dictionaryWithObjectsAndKeys:kArr, @"Kate", aArr, @"Ana-Lucia", kArr, @"John",  nil];
N开发者_JAVA百科SArray *array = [guide2 allKeys];
NSLog(@"%@", [array description]);

output:

(
John,
Kate,
"Ana-Lucia"
)


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.


Because it's not strictly alphanumeric and one word only. Try NSArray *array = [NSArray arrayWithObjects:@"abc", @"123", @"$abc", @"a-b-c", @"a b c", 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.

0

精彩评论

暂无评论...
验证码 换一张
取 消