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です。物事のその部分ですべてが正しいです。何が間違っているのですか。「CountryisUSA」を表示するにはどうすればよいですか。

ありがとうございました!

iOS 5.1および6.0でのテスト、同じ結果

4

2 に答える 2

2

このisEqualToString:メソッドを使用して、2つの文字列の内容を比較する必要があります。==オペレーターは2つのポインターが等しいかどうかをテストするため、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 に答える