Dans mon application, j'ai une certaine distance en mètres. P>
Et je veux l'afficher en kilomètres si l'utilisateur préfère les kilomètres et l'affiche en miles si l'utilisateur préfère les milles. Et dans le premier cas, je veux ajouter à une chaîne "kilomètres" à la fin et dans le second pour ajouter des "miles". P>
Quel est le meilleur moyen d'atteindre cet objectif? p>
merci. p>
5 Réponses :
Sauf si l'iPhone fournit directement ces informations, vous devrez avoir une table de recherche à partir de l'unité locale à l'unité par défaut. Ensuite, vous devriez permettre à l'utilisateur de remplacer cette valeur par défaut. P>
Il le fournit directement, voir ma réponse :)
Vous pouvez demander à l'utilisateur qu'ils préfèrent les milles ou les kilomètres, dans une préférence ou quelque chose. Ensuite, chaque fois que vous affichez une distance, vous diriez.
dans le code pseudo c p> où compteurs_in_a_mile code> serait d'environ 1600, mais vous devriez regarder ça up. p> p>
1609.344 mètres dans un mile
Pour déterminer si l'utilisateur utilise métrique ou non, Nslocale peut vous dire:
- (BOOL)isMetric { return [[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue]; }
faux code> signifie-t-il que les milles sont préférés?
@ Bartłomiejsemańczyk oui
Notez qu'il est par défaut à vrai code> dans certaines circonstances. Changez au besoin. P> p>
dans SWIFT, locale.current.utilisationtricsystem code> donne ce que l'utilisateur attendrait. Mais vous n'avez pas besoin de cela si vous utilisez la mesure code> code> qui le gère pour vous.
let distanceInMeters: Double = 2353.45
let formatter = MeasurementFormatter()
formatter.unitStyle = .medium // adjust according to your need
let distance = Measurement(value: distanceInMeters, unit: UnitLength.meters)
formatter.locale = Locale(identifier: "en_UK")
formatter.string(from: distance) // 1.462 mi
formatter.locale = Locale(identifier: "en_FR")
formatter.string(from: distance) // 2,353 km
Malheureusement, vous ne pouvez pas obtenir l'unité de MesureFormatter code> sauf si vous analysez la chaîne (qui sera probablement buggy avec des locaux comme "AR" qui utilisent des chiffres spéciaux). Notez que pour
EN-UK code>
formatter.string (à partir de: UnitLength.MMETRES) CODE> SURPULER
compteurs code>, car il "traduit" l'appareil de la convertir au préféré.
Pourquoi ne pas en faire une préférence de l'utilisateur?
Lisez cette Article sur l'iPhone Locale. == Mise à jour == Lorsque le lien d'origine ne fonctionne plus, Voici la version mise en cache .