NSMutableDictionary 正在为键和值添加引号 - 为啥?
Posted
技术标签:
【中文标题】NSMutableDictionary 正在为键和值添加引号 - 为啥?【英文标题】:NSMutableDictionary is adding quotes to keys and values - why?NSMutableDictionary 正在为键和值添加引号 - 为什么? 【发布时间】:2010-03-18 16:07:58 【问题描述】:我正在尝试向 NSMutableDictionary 添加一些额外的键/值对,使用:
Tag *tag1 = [results1 objectAtIndex:0];
[resultsDict setObject:[tag1 retrieveTextUpToDepth:1] forKey:@"image_url"];
Tag *tag2 = [results2 objectAtIndex:0];
[resultsDict setValue:[tag2 retrieveTextUpToDepth:1] forKey:@"majority"];
这会毫无问题地添加 k/v 对,除非我来检索它们时,某些值已用双引号括起来:
po extendedDataDictionary:
"image_url" = "/images/mpsL/11727.jpeg";
majority = 3460;
键和值都是 NSStrings,没有引号 - 所以我很难理解它们是从哪里出现的。
有什么办法可以预防吗?
或者我是否必须忍受它并在检索到值后尝试去掉引号?
谢谢...
【问题讨论】:
如果您在代码中(printf 或 NSLog)而不是通过 gdb 打印它们会得到什么 通过 NSLog 是一样的:2010-03-18 21:08:24.312 Conflict[49224:40b] extendedDataDictionary = "image_url" = "/images/mpsL/13735.jpeg";多数 = 2484;摆动=“4.6”; "vulnerability_cohort" = 643; “漏洞等级”= 488;所有的值都来自同一个 XML 提要,并且 image_url 字段中绝对没有引号...... 【参考方案1】:引号并不是内容的一部分; -description
方法(由 po
,IIRC 调用)只是将包含非字母数字字符的内容用引号括起来。
【讨论】:
此外,-description
方法的输出不应用于除调试之外的任何用途。
@bbum 很难学到这一点。几个小时以来,我一直坚信 NSDictionaries 无法打印 unicode 字符...最终是 description
删除了它们 D:
@Wevah :它带有特殊字符的精细值用双引号括起来,但是如果说密码字段必须有一个特殊字符,那么 API 调用会因为这个不需要的双引号而失败。如何防止 -description 方法将该双引号包装到特定字段..
您不应该使用 -description 来传递给 API。【参考方案2】:
加上它,你可以使用忽略引号的键或值,应该没问题..
【讨论】:
以上是关于NSMutableDictionary 正在为键和值添加引号 - 为啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 NSMutableDictionary 中保留部分分数
从ios中的nsmutableDictionary中删除一个键