NSLog - 行为异常

5
我发现最后一个单词出现了双引号。但是为什么?
NSDictionary *guide2 = [NSDictionary dictionaryWithObjectsAndKeys:kArr, @"Kate", aArr, @"Ana-Lucia", kArr, @"John",  nil];
NSArray *array = [guide2 allKeys];
NSLog(@"%@", [array description]);

输出:

(
John,
Kate,
"Ana-Lucia"
)
2个回答

7

因为它不是严格的字母数字组合,也不是单词。尝试使用NSArray *array = [NSArray arrayWithObjects:@"abc", @"123", @"$abc", @"a-b-c", @"a b c", nil];,你会发现只有前两个没有引号。这只是描述代码的人做出的一种实现选择。


7
似乎是因为键名 Ana-Lucia 中有特殊字符-,所以它会在双引号中显示。可能是为了表明这个键名是一个单词。如果您的键名只包含字母,比如 "AnaLucia",则不会用引号括起来显示。
如果键名包含除字母之外的任何字符,即使是下划线(_)空格,也会用双引号括起来显示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接