J'ai un tableau de codes de pays comme: ["US","CZ","FR"]
etc et je voudrais obtenir le nom du pays localisé itérer à travers ce tableau.Réception du nom de pays du code de région
Auparavant localizedString(forRegionCode:)
fonctionnait parfaitement. Mais probablement depuis 10.3 quelque chose a changé.
Voici un exemple:
let currentLocale = Locale.current
// en_US (current)
let currentIdentifier = Locale.current.identifier
// "en_US"
let localeFromCurrentIdentifier = Locale(identifier: currentIdentifier)
// "en_US" (fixed)
let franceCode = "fr"
let franceName = currentLocale.localizedString(forRegionCode: franceCode)
// nil
let franceName2 = localeFromCurrentIdentifier.localizedString(forRegionCode: franceCode)
// "France"
Alors, pourquoi locale actuelle retourne nil
pour le code France et les paramètres régionaux initialisé à partir de l'identifiant de localisation en cours retourne France
?
Mise à jour: donc la solution de contournement pour faire localizedString(forRegionCode:)
travail est de ne pas utiliser Locale.current
, mais Locale(identifier: Locale.current.identifier)
.
Les deux versions fonctionnent pour moi dans le simulateur 10.3 sous Xcode 8.3.1 –
Peut-être un problème de terrain de jeu. – rmaddy
@ChrisAllwein intéressant, mon application ne fonctionne pas correctement si j'utilise simplement 'current' au lieu d'initialiser les paramètres régionaux séparés:/ – njuri