2009-07-27 17 views
7

En mi aplicación tengo cierta distancia en metros.¿Cómo saber si el usuario prefiere millas o kilómetros?

Y quiero mostrarlo en kilómetros si el usuario prefiere kilómetros y mostrarlo en millas si el usuario prefiere millas. Y en el primer caso quiero agregar una cadena "kilómetros" al final y en el segundo para agregar "millas".

¿Cuál es la mejor manera de lograr este objetivo?

Gracias.

+0

¿Por qué no hacerlo una preferencia de usuario? – ceejayoz

+0

Lea este [artículo] (http://www.iphonesdkarticles.com/2008/11/localizing-iphone-apps-part-1.html) sobre la configuración regional de iPhone. == Actualización == Como el enlace original ya no funciona, [aquí está la versión en caché] (https://web.archive.org/web/20130126031830/http://www.iphonesdkarticles.com/2008/11/ localizing-iphone-apps-part-1.html). –

Respuesta

0

A menos que el iPhone proporcione esta información directamente, deberá tener una tabla de búsqueda de la configuración regional a la unidad predeterminada. Luego debe permitir que el usuario anule ese valor predeterminado.

+0

Lo proporciona directamente, ver mi respuesta :) – Chris

1

Puede preguntar al usuario si prefiere millas o kilómetros, con preferencia o algo así. Luego, cuando muestres una distancia, dirías.

En pseudo código c

function distance(meters) { 
    if (userPrefersKM) { 
     return meters/1000 + " kilometers"; 
    else if (userPrefersMiles) { 
     return meters/METERS_IN_A_MILE + " miles"; 
} 

Dónde METERS_IN_A_MILE sería de alrededor de 1600, pero se debe buscar eso.

+0

1609.344 metros en una milla –

14

Para determinar si el usuario utiliza métrica o no, NSLocale le puede decir:

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

Swift equivalente de respuesta de Chris sería algo como esto:

func isMetric() -> Bool { 
    return ((Locale.current as NSLocale).object(forKey: NSLocale.Key.usesMetricSystem) as? Bool) ?? true 
} 

Nota que se predetermina a true bajo ciertas circunstancias. Cambiar según sea necesario.

Cuestiones relacionadas