为什么字符串显示在NSDictionary中有报价,但有些却没有? [重复](Why does

2019-06-24 06:45发布

这个问题已经在这里有一个答案:

  • 的NSMutableDictionary被加上引号键和值-为什么? 2个回答

所以,我有一个NSMutableDictionary我填充,但不同的,当我输出的内容的NSLog,该条目中的关键和值在进入for循环出现,而最终的NSLog通话甚至不输出任何东西。 这里发生了什么??? 请帮忙! 为什么周围的条目的引号中的环路中加入???

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                            numberOfPhotosAsString, @"PackageFileCount",
                            wtID, @"wtID",
                            uploadType, @"type",
                            nil];
    for (int i= 0; i < photos.count; i++)
    {
        NSString *finalFileName = [fileNameBase stringByAppendingFormat:@"%i", i];
        [params setObject:[[fileNames objectAtIndex:i] stringByAppendingString:@".jpg"] forKey:finalFileName];
        // This one doesn't do anything differently:
        //[params setValue:[[fileNames objectAtIndex:i] stringByAppendingString:@".jpg"] forKey:[fileNameBase stringByAppendingFormat:@"%i", i]];
    }
    NSLog(@"Params: %@", params);
    NSLog(@"Value: %@", [params objectForKey:@"SourceName_0"]);

的NSLog输出(我只在添加了一个价值for循环:“SourceName_0” =“tbyg.jpg”,但为什么围绕“SourceName_0” ---无论这里发生的引号阻止我访问该字典项...

日志:

2012-05-09 12:38:26.448 PhotoUp[6231:707] Params: {
    PackageFileCount = 1;
    "SourceName_0" = "tbyg.jpg";
    type = T;
    wtID = "6bcb4126-4bbe-4b3d-be45-9a06cf56a22f";
}
2012-05-09 12:38:26.449 PhotoUp[6231:707] Value: (null)

Answer 1:

该报价出现,因为该字符串包含除基本的字母数字的东西 - 在这种情况下,下划线。 这是同样的道理"tbyg.jpg""6bcb4126-4bbe-4b3d-be45-9a06cf56a22f"有引号(它们含有点和破折号,分别)。 那是多么description方法的工作。 它不会造成你的第二个日志失败。



文章来源: Why does string show up in NSDictionary with quotes, but others don't? [duplicate]