为什么NSDictionary有时会在使用dictionaryWithObjectsAndKeys时删除引号?

时间:2014-05-05 22:20:03

标签: ios nsdictionary quotes

我有以下代码行......

NSDictionary *visitDict = [NSDictionary dictionaryWithObjectsAndKeys:self.room.roomId, @"room_id", self.datePicker.date, @"date", nil];

输出此结果......

Dict: {
    date = "2014-05-05 22:15:02 +0000";
    "room_id" = 12;
}

room_id有引号,但日期没有。

如果我将其命名为date_a,它将会有引号。但是日期没有。我无法逃脱第一行代码

NSDictionary *visitDict = [NSDictionary dictionaryWithObjectsAndKeys:self.room.roomId, @"room_id", self.datePicker.date, @"\"date\"", nil];    

或者因为那时我才结束这个。

Dict: {
    "\"date\"" = "2014-05-05 22:18:33 +0000";
    "room_id" = 6;
}

是什么给出的?我需要关于这个键的引用,我怎么能实现呢?

1 个答案:

答案 0 :(得分:4)

在您发布的第一行代码中,没有任何值实际上包含任何引号。

当您记录NSDictionary时,如果键/值包含空格,下划线或其他特殊标点符号,则值仅显示在引号中。

在您发布的第二行代码中,您的"日期" key实际上在键值中有引号。

当您记录该字典时,这些引号会与反斜杠一起显示(尽管反斜杠实际上并不在字符串中),并且由于该值有一些特殊字符,因此它会显示在引号中。

澄清一下,NSDictionary永远不会删除任何内容。