Question

Au cours de la localisation de mon application, je suis passé par beaucoup de documents, quelque part je suis sûr que je lis qu'il ya un moyen d'obtenir un ensemble d'unités qui est lié à l'environnement local.

Je crois qu'il a dit quelque chose comme « unités basées sur la culture ... » quelque chose.

Je voudrais afficher la température et de la distance en degrés Fahrenheit et Miles pour certains pays et C et pour les autres pays kilomètres.

Y at-il un moyen d'accéder à une liste de ces unités dans le SDK iPhone.

Merci vous.

Était-ce utile?

La solution

Vous pouvez utiliser NSLocale pour vérifier l'unité monétaire, mais pour impérial contre métrique vous devez faire une liste vous .

Oops. Vous peut vérifier l'impériale contre métrique. Il est des touches de NSLocaleMeasurementSystem et NSLocaleUsesMetricSystem.

Autres conseils

Il est à noter que Apple offre une belle bibliothèque (MKDistanceFormatter, introduit dans iOS 7) pour présenter automatiquement une CLLocationDistance que la chaîne appropriée pour les paramètres régionaux et la langue d'un utilisateur donné.

Il fait un peu arrondi flou (par exemple 300ft-> 350ft-> 400ft), mais ne convertit bien entre les unités (par exemple les pieds -> miles, le cas échéant de le faire). À moins que vous exigez des valeurs vraiment précises, cette classe est parfait pour le retour des estimations approximatives pour les distances dans deux lignes de code.

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

https://developer.apple. com / bibliothèque / ios / documentation / MapKit / Référence / MKDistanceFormatter_class / Référence / Reference.html

Je voulais juste noter que, comme avec la sortie de iOS8 il y aura de nouveaux NSFormatters pour au moins quelques-unes des unités que vous avez mentionnés.

Il y aura NSLengthFormatter, NSMassFormatter et NSEnergyFormatter qui sont très faciles à utiliser - voir cette iOS8 tutoriel NSFormatter . Voici un exemple en utilisant le NSLengthFormatter avec rapide:

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

Swift:

1).

import MapKit

2.) Depuis la création de formatter est cher, il vaut mieux définir formatter comme une propriété paresseuse. Ce faisant, vous pouvez initialiser le formatter seulement quand il est nécessaire et réutiliser le formatter plutôt que de créer un nouveau.

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

    return tempDistanceFormatter
}()

3).

let distanceString = self.distanceFormatter.stringFromDistance(yourDistance)

Je l'ai extrait cette méthode pour l'extension String. Allure élégante

Swift version 4.1

import MapKit

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

Utilisation

let distance = Double(34234.0)
let stringDistance String(distance:distance)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top