我对为什么此代码无法按以下注释工作感到困惑:

NSString *countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
NSLog(@"Country Code: %@", countryCode);

if (countryCode == @"US") {
    NSLog(@"Country is USA"); // Does not execute since the if does not pass
}


语言环境为en_US,因此国家/地区代码为US。在那部分事情上一切都正确。我在做什么错了,如何显示“美国是美国”?

谢谢!

在iOS 5.1和6.0上进行测试,结果相同

最佳答案

无法使用==运算符比较字符串,请尝试使用isEqualToString:

NSString *countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
NSLog(@"Country Code: %@", countryCode);

if ([countryCode isEqualToString: @"NL"]) {
    NSLog(@"Country is NL");
}


由于我在荷兰,所以使用了NL :)

07-24 09:36
查看更多