0

我很困惑为什么这段代码不能按照下面的评论工作:

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 上测试,结果相同

4

2 回答 2

2

您必须使用该isEqualToString:方法来比较两个字符串的内容。==运算符测试两个指针是否相等,因此返回 0 。

于 2012-07-04T09:36:34.050 回答
2

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

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

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

NL自从我在荷兰开始使用:)

于 2012-07-04T09:36:42.497 回答