NSLog – 奇怪的行为

我发现最后一个单词用双引号显示。 但为什么?

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

输出:

 ( John, Kate, "Ana-Lucia" ) 

似乎由于特殊的特征-在关键的Ana-Lucia ,它显示在双引号内。 可能这是因为要表明关键是一个单词 。 如果您的密钥只包含像“AnaLucia”这样的alphabets ,那么它将显示它而不带引号。

如果键包含除alphabets之外的任何字符,则该键显示为双引号,即使它是underscore(_)space

因为它不是严格的字母数字和仅一个字。 尝试NSArray *array = [NSArray arrayWithObjects:@"abc", @"123", @"$abc", @"abc", @"abc", nil]; ,你会看到只有前两个没有被引用。 它只是编写描述代码的人的一个实现选择。