Je dois obtenir le pays actuel dans les paramètres de l'iPhone. Quelqu'un peut-il me dire comment obtenir le pays actuel dans l'application iPhone.
Je dois utiliser le pays actuel pour analyser le flux RSS dans lequel je dois passer le pays actuel.
Veuillez m'aider à trouver le pays.
Merci d'avance.
Pour trouver le pays de la langue choisie par l'utilisateur:
NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
// get country code, e.g. ES (Spain), FR (France), etc.
Dans Swift:
let currentLocale = NSLocale.currentLocale()
let countryCode = currentLocale.objectForKey(NSLocaleCountryCode) as? String
Si vous voulez trouver le code de pays du fuseau horaire actuel, voir réponse de @ chings228 .
Si vous souhaitez trouver le code de pays de l'emplacement physique de l'appareil, vous aurez besoin de CoreLocation avec géocodage inversé. Voir cette question pour plus de détails: Comment puis-je obtenir l'emplacement actuel de l'utilisateur dans iOS
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *country = [locale displayNameForKey: NSLocaleCountryCode value: countryCode];
Pour Swift 4.0,
Vous pouvez simplement utiliser
let countryCode = Locale.current.regionCode
print(countryCode)
Pour les appareils avec carte SIM, vous pouvez utiliser ceci:
CTTelephonyNetworkInfo * network_Info = [CTTelephonyNetworkInfo new];
CTCarrier * carrier = network_Info.subscriberCellularProvider;
NSString * countryCode = [carrier.isoCountryCode uppercaseString];
NSLocale *countryLocale = [NSLocale currentLocale];
NSString *countryCode = [countryLocale objectForKey:NSLocaleCountryCode];
NSString *country = [countryLocale displayNameForKey:NSLocaleCountryCode value:countryCode];
NSLog(@"Country Code:%@ Name:%@", countryCode, country);
//Country Code:IN Name:India
NSTimeZone *gmt = [NSTimeZone localTimeZone];
NSLog(@"timezone gmt %@",gmt.abbreviation);
Si vous testez et souhaitez utiliser une langue différente de votre système, il est plus facile de modifier les options Application Language
Et Application Region
De votre schéma au lieu de changer la langue et la région sur votre appareil ou simulateur.
Allez dans Product
-> Scheme
-> Edit Scheme...
-> Run
-> Options
et choisissez Application Language
Et Application Region
Que vous souhaitez tester.
De la documentation iOS: Test de votre application internationalisée
Le dernier code de travail de Swift 3.0 est
if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String {
print(countryCode)
}
Swift 3. solution
if let countryCode = (Locale.current as NSLocale).object(forKey: .countryCode) as? String {
print(countryCode)
}