所以我有一个填充的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
方法的工作原理。它不会导致第二个日志失败。