の距離、通貨、温度単位等国(iPhone)
-
23-09-2019 - |
質問
このローカリゼーションのアプリのように多くの文書を、どこか切読んだことがわかりやすく伝えるためのユニットが連動のロケールです。
と思いながるというようなもの"ユニット文化センター"。
思表示温度、距離の華氏およびマイルの一部の国℃、キロのために。
があるので、アクセスリストのこれらのユニットのiPhone SDKです。
いただきありがとうございます.
解決
あなたは、通貨単位を確認するためにNSLocale
を使用することができます。<デル>が、メトリック帝国対のためのリストを自分で作成する必要があり、デル>。
おっと。メトリック帝国対のためのあなたのことができます。のチェック。 NSLocaleMeasurementSystem
とNSLocaleUsesMetricSystem
キーがありますされます。
他のヒント
価値Appleが自動的に与えられたユーザーのロケールと言語に適した文字列としてCLLocationDistanceを提示するために素敵なライブラリ(iOSの7で導入されたMKDistanceFormatterを)提供していることに言及されています。
これは少しファジー丸め(例えば300ft-> 350ft-> 400フィート)を行いますが、うまく単位間の変換ん(例えばフィート - そうするために、適切な>マイル)。あなたが本当に正確な値を求めていない限り、このクラスは、2行のコードで距離の大まかな見積もりを返すのに最適です。
MKDistanceFormatter *distanceFormatter = [[MKDistanceFormatter alloc] init];
[distanceFormatter setUnitStyle:MKDistanceFormatterUnitStyleAbbreviated]; // Optional
NSString *formattedDistance = [distanceFormatter stringFromDistance:100];
NSLog(@"%@",formattedDistance); // Prints "350 ft"
そう思ってやってきましたことに注意してくださとしてのリリース iOS8 が新たな NSFormatters
少なくとも一部のユニットを使って制御されます。
があります NSLengthFormatter
, NSMassFormatter
や NSEnergyFormatter
非常に使いやすい見本 iOS8NSFormatterチュートリアル.ここでは一例ですのNSLengthFormatter迅速:
let lengthFormatter = NSLengthFormatter()
println(@"Kilometer: %@", lengthFormatter.stringFromValue(1000, unit: .Kilometer)) //Kilometer: 1,000 km
スウィフトます:
1)
import MapKit
2。)フォーマッタを作成するので、怠惰な財産として、あなたより良いセットフォーマッタ、高価です。そうすることによって、あなたはそれが必要だ場合にのみ、フォーマッタを初期化し、フォーマッタを再利用するのではなく、新しいものを作成することができます。
lazy var distanceFormatter: MKDistanceFormatter = {
var tempDistanceFormatter = MKDistanceFormatter()
tempDistanceFormatter.unitStyle = .Abbreviated // .abbreviated in Swift 3
return tempDistanceFormatter
}()
3)
let distanceString = self.distanceFormatter.stringFromDistance(yourDistance)
私は、文字列の拡張子にこの方法を抽出しています。ルックスエレガント
スウィフト4.1バージョン
import MapKit
extension String {
init(distance: Double ) {
let mkDistanceFormatter = MKDistanceFormatter()
mkDistanceFormatter.unitStyle = .abbreviated
self = mkDistanceFormatter.string(fromDistance: distance)
}
}
使用方法
let distance = Double(34234.0)
let stringDistance String(distance:distance)