新しいMeasurementFormatter
クラスを取得して、適切な単位で結果を得ることができません。私は、ユーザーのロケールに応じて、メートルまたはフィートのいずれかのローカライズされた文字列で表示したい値をメートル単位で持っています。MeasurementFormatterを使用してメートルをフィートで表示する
私はこれを持っている:
これは私に "0.006mi" の文字列を与えるlet meters : Double = 10
let metersMeasurement = Measurement(value: meters, unit: UnitLength.meters)
let measurementFormatter = MeasurementFormatter()
measurementFormatter.locale = Locale(identifier: "en_US")
let localizedString = measurementFormatter.string(from: metersMeasurement)
。それは正しいと思いますが、10メートルをマイルに変換するのはばかげています。私が欲しいのは「32.8ft」です。
MeasurementFormatter
の.providedUnit
オプションは役に立ちません。これは私にメートルで結果を与えます。
私は現在のロケールを検索して自分自身で処理することができますが、これはちょうどMeasurementFormatter
が不要と思われるものです。私に必要なことをさせるための方法がありますか?
単位フォーマッタで「naturalScale」オプションを設定するhttps://developer.apple.com/reference/foundation/measurementformatter.unitoptions/1642065-naturalscale – Paulw11
ナチュラルスケールのほかに、数値フォーマッタの最大桁数を1に設定する必要があります。 'measurementFormatter .numberFormatter.maximumFractionDigits = 1' –
@LeoDabusこれはオプションです。 – rmaddy