gpt4 book ai didi

cocoa - 关于 NSDictionaries 的一个重要问题

转载 作者:行者123 更新时间:2023-12-03 18:05:08 26 4
gpt4 key购买 nike

我有一个带有 NSString 的 NSDictionary

某些 valueForKey:@"Key"没有条目,因此为 (null)

NSMutableString* addressDictionaryToString = [NSMutableString string];  // use mutable string!
for (NSDictionary* item in address) { // use fast enumeration!
[addressDictionaryToString appendFormat:@"%@, %@, %@, %@",
[item objectForKey:@"Street"],
[item objectForKey:@"City"],
[item objectForKey:@"State"],
[item objectForKey:@"ZIP"]
];
NSLog(@"MutableString: %@", addressDictionaryToString);
}

所以我想构建一个 NSMutableString 但过滤掉那些为 null 的键。有什么想法吗?

更新:::::

基本上我希望我的结果字符串看起来像

1 Infinite Loop,Cupertino,CA,95014(如果所有字段均可用)

如果我想念这条街,那么

加利福尼亚州库比蒂诺,95014

如果我错过了国家,那么

1 Infinite Loop,库比蒂诺,95014

如果我只有状态,那么它应该打印

CA

(请注意最后一个元素上没有逗号)

最佳答案

检查键是否有值怎么样?

NSMutableString * addressDictionaryToString = [NSMutableString string];
for (NSDictionary * item in address)
{
if ([item objectForKey:@"Street"])
[addressDictionaryToString appendFormat:@"%@, ",
[item objectForKey:@"Street"]];
if ([item objectForKey:@"City"])
[addressDictionaryToString appendFormat:@"%@, ",
[item objectForKey:@"City"]];
if ([item objectForKey:@"State"])
[addressDictionaryToString appendFormat:@"%@, ",
[item objectForKey:@"State"]];
if ([item objectForKey:@"ZIP"])
[addressDictionaryToString appendFormat:@"%@, ",
[item objectForKey:@"ZIP"]];
NSLog(@"MutableString: %@", addressDictionaryToString);
}

问题是,在你的上一个问题中,你说你的目标是创建一个 CSV 文件。如果您的行具有不同数量的字段,并且没有可靠的方法来识别每个字段,那么它在技术上就不是有效的 CSV。

相反,您可以尝试以下操作:

NSMutableString * addressDictionaryToString = [NSMutableString string];
for (NSDictionary * item in address)
{
[addressDictionaryToString appendFormat:@"%@,",
([item objectForKey:@"Street"]) ? [item objectForKey:@"Street"] : @"" ];
// ...
NSLog(@"MutableString: %@", addressDictionaryToString);
}

它检查值是否存在,如果存在则插入该值,或者只是一个空字符串(结果为“值,值,,值...”)。另请记住,逗号后面不应该有空格,因此我已从本示例中删除了它。

关于cocoa - 关于 NSDictionaries 的一个重要问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com