为什么字符串在 NSDictionary 中显示带有引号,而其他字符串没有?



所以我有一个填充的NSMutableDictionary,但是当我将内容输出到NSLog时,在for循环中输入的条目的键和值以不同的方式显示,最终的NSLog调用甚至没有输出任何内容。 这是怎么回事??? 请帮忙! 为什么在 for 循环中添加条目周围的引号???

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)

出现引号是因为字符串包含基本字母数字以外的内容 - 在本例中为下划线。这与"tbyg.jpg""6bcb4126-4bbe-4b3d-be45-9a06cf56a22f"有引号的原因相同(它们分别包含点和破折号(。这就是description方法的工作原理。它不会导致第二个日志失败。

相关内容

最新更新