12
votes

Comment savoir si l'utilisateur préfère des kilomètres ou des kilomètres?

Dans mon application, j'ai une certaine distance en mètres.

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".

Quel est le meilleur moyen d'atteindre cet objectif?

merci.


2 commentaires

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 .


5 Réponses :


0
votes

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.


1 commentaires

Il le fournit directement, voir ma réponse :)



1
votes

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 xxx

compteurs_in_a_mile serait d'environ 1600, mais vous devriez regarder ça up.


1 commentaires

1609.344 mètres dans un mile



15
votes

Pour déterminer si l'utilisateur utilise métrique ou non, Nslocale peut vous dire:

- (BOOL)isMetric {
  return [[[NSLocale currentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue];
}


2 commentaires

faux signifie-t-il que les milles sont préférés?


@ Bartłomiejsemańczyk oui



5
votes

SWIFT L'équivalent de la réponse de Chris serait quelque chose comme ceci: xxx

Notez qu'il est par défaut à vrai dans certaines circonstances. Changez au besoin.


0 commentaires

1
votes

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


1 commentaires

Malheureusement, vous ne pouvez pas obtenir l'unité de MesureFormatter 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 formatter.string (à partir de: UnitLength.MMETRES) SURPULER compteurs , car il "traduit" l'appareil de la convertir au préféré.