2010-02-22 8 views
6

Actualmente estoy trabajando en una aplicación de iPhone basada en mapas y deseo mostrar información al usuario. Para mi aplicación, tiene sentido tener una configuración de algún tipo en la que el usuario pueda elegir Millas o Kilómetros. ¿Existe un mecanismo integrado (tal vez similar a la localización de cadenas) para realizar este tipo de cambio de valor, de modo que pueda evitar un bloqueo de if cada vez que deseo mostrar algo al usuario?¿Existe un mecanismo integrado para la intercambiabilidad Miles/KM para iPhone?

Respuesta

12

Eche un vistazo a NSLocale. Debería poder obtener la configuración regional actual utilizando [NSLocale currentLocale]. A continuación, llame a [theLocale objectForKey: NSLocaleMeasurementSystem] y observe los resultados que le indicarán si la configuración regional de los usuarios utiliza el sistema métrico. Los documentos para NSLocale tienen una sección de constantes que enumera todos los valores que se pueden pasar a la configuración regional.

Al usar esto, creará su propia función que podría usarse en su programa para devolver su distancia de una manera específica.

+3

Si desea un valor booleano simple, también puede verificar la clave NSLocaleUsesMetricSystem, que devuelve un valor booleano envuelto en NSNumber para saber si se deben usar kilómetros o millas. –

+0

En mi aplicación, tengo la intención de darle al usuario la opción de mostrar las cosas en millas o kilómetros. Basándome en los comentarios sobre este hilo, creo que está claro que no hay un mecanismo integrado para intercambiar una unidad por la otra, pero no será demasiado difícil tener un método que verifique el conjunto booleano del usuario y hace una conversión a kilómetros Gracias por las respuestas. Estoy seguro de que serán útiles para mí en algún momento. – TahoeWolverine

+2

Este método aún sería útil para poblar inicialmente sus preferencias con la opción del sistema de usuarios para las unidades. Algo para considerar. –

-1

Según mi prueba rápida NSLocaleUsesMetricSystem puede que no funcione para encontrar si la región de los usuarios usa kilómetros o millas.

En el Reino Unido, las distancias están en Miles y velocidad en millas por hora, pero NSLocaleUsesMetricSystem retornos 1.

En los EE.UU., NSLocaleUsesMetricSystem devuelve 0, que es correcta (la distancia es en Miles y velocidad en millas por hora) .

En la India, NSLocaleUsesMetricSystem devuelve 1, que es correcto de nuevo (la distancia está en Kilómetros y spee en kph).

Cuestiones relacionadas