usa solucion señal servicio porque calienta apple iphone localization iphone-sdk-3.1

solucion - porque se calienta mi iphone 6



Encontrar la distancia, moneda, unidades de temperatura, etc. para un país(iPhone) (5)

Durante la localización de mi aplicación pasé por una gran cantidad de documentación, en algún lugar, estoy seguro de haber leído que hay una forma de obtener un conjunto de unidades que está vinculado con la configuración regional.

Creo que decía algo así como "unidades basadas en cultura ..." algo.

Me gustaría mostrar la temperatura y la distancia en grados Fahrenheit y Miles para algunos países y grados Celsius y Kilómetros para otros países.

¿Hay alguna forma de acceder a una lista de estas unidades en el iPhone SDK?

Gracias.


He extraído este método a la extensión String. Se ve elegante

Versión Swift 4.1

import MapKit extension String { init(distance: Double ) { let mkDistanceFormatter = MKDistanceFormatter() mkDistanceFormatter.unitStyle = .abbreviated self = mkDistanceFormatter.string(fromDistance: distance) } }

Uso

let distance = Double(34234.0) let stringDistance String(distance:distance)


Rápido:

1.)

import MapKit

2.) Como la creación del formateador es costosa, es mejor configurar el formateador como una propiedad perezosa. Al hacerlo, puede inicializar el formateador solo cuando sea necesario y reutilizarlo en lugar de crear uno nuevo.

lazy var distanceFormatter: MKDistanceFormatter = { var tempDistanceFormatter = MKDistanceFormatter() tempDistanceFormatter.unitStyle = .Abbreviated // .abbreviated in Swift 3 return tempDistanceFormatter }()

3.)

let distanceString = self.distanceFormatter.stringFromDistance(yourDistance)


Solo quería señalar que, al igual que con el lanzamiento de iOS8 , habrá nuevos NSFormatters para al menos algunas de las unidades que mencionó.

Habrá NSLengthFormatter , NSMassFormatter y NSEnergyFormatter que son muy fáciles de usar; consulte este tutorial de iOS8 NSFormatter . Aquí hay un ejemplo usando el NSLengthFormatter con swift:

let lengthFormatter = NSLengthFormatter() println(@"Kilometer: %@", lengthFormatter.stringFromValue(1000, unit: .Kilometer)) //Kilometer: 1,000 km


Vale la pena mencionar que Apple proporciona una biblioteca agradable (MKDistanceFormatter, introducida en iOS 7) para presentar automáticamente una CLLocationDistance como la cadena adecuada para la ubicación y el idioma de un usuario determinado.

Hace un poco de redondeo difuso (por ejemplo, 300 pies -> 350 pies -> 400 pies), pero se convierte muy bien entre unidades (por ejemplo, pies -> millas, cuando sea apropiado hacerlo). A menos que exija valores realmente precisos, esta clase es perfecta para obtener estimaciones aproximadas de distancias en dos líneas de código.

MKDistanceFormatter *distanceFormatter = [[MKDistanceFormatter alloc] init]; [distanceFormatter setUnitStyle:MKDistanceFormatterUnitStyleAbbreviated]; // Optional NSString *formattedDistance = [distanceFormatter stringFromDistance:100]; NSLog(@"%@",formattedDistance); // Prints "350 ft"

https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKDistanceFormatter_class/Reference/Reference.html


Puede usar NSLocale para verificar la unidad monetaria, pero para imperial vs métrico necesitas hacer una lista tú mismo .

Ups. Puedes verificar la métrica imperial vs. Hay claves NSLocaleMeasurementSystem y NSLocaleUsesMetricSystem .