为啥 NSDictionary 在使用 dictionaryWithObjectsAndKeys 时有时会删除引号?
Posted
技术标签:
【中文标题】为啥 NSDictionary 在使用 dictionaryWithObjectsAndKeys 时有时会删除引号?【英文标题】:Why does NSDictionary sometimes remove quotes when using dictionaryWithObjectsAndKeys?为什么 NSDictionary 在使用 dictionaryWithObjectsAndKeys 时有时会删除引号? 【发布时间】:2014-05-05 22:20:02 【问题描述】:我有下面这行代码...
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 没有。
如果我称它为 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】:在您发布的第一行代码中,实际上没有一个值包含任何引号。
当您记录 NSDictionary
时,如果键/值包含空格、下划线或其他特殊标点符号,则值只会出现在引号中。
在您发布的第二行代码中,您的“日期”键实际上在键值中有引号。
当您记录该字典时,这些引号与反斜杠一起显示(尽管反斜杠实际上不在字符串中),并且由于该值具有一些特殊字符,因此它显示在引号中。
澄清一下,NSDictionary
从不删除任何内容。
【讨论】:
好的,所以如果我将此评论发布到需要引号的 Rails 后端,这一切都会得到处理? 什么评论?现在你问的是一个与你原来的问题无关的完全独立的问题。 即使我遇到同样的问题,我也需要带引号的参数才能从服务器获得正确的响应。任何想法以上是关于为啥 NSDictionary 在使用 dictionaryWithObjectsAndKeys 时有时会删除引号?的主要内容,如果未能解决你的问题,请参考以下文章
NSDictionary 的描述 - 为啥有些键名带有引号?
为啥我得到“[__NSArrayI allKeys]:无法识别的选择器发送到实例”/为啥 NSDictionary 正在转换?
为啥我得到“[__NSArrayI allKeys]:无法识别的选择器发送到实例”/为啥 NSDictionary 正在转换?