2016-09-22 6 views
1

:사용 지역화 (10) 나는 길이 측정에 대한 지역화 된 문자열을 얻을 아이폰 OS 10의 새로운 <a href="https://developer.apple.com/reference/foundation/measurement" rel="nofollow">Measurement API</a>을 사용하고

let length = Measurement(value: 200, unit: UnitLength.centimeters) 
let str = MeasurementFormatter().string(from: length) 

하지만, 내 (UK) 로케일에 대해, 나는 다음 돌아가는 "0.001 mi"으로 돌아 가야합니다.이 문자열은 표시 할 문자열이 아닙니다. 대신 측정 규모에 적합한 단위 (예 : "6.56 feet" 또는 "2.19 yards")를 사용하는 문자열을 얻는 것이 좋습니다. API로 가능합니까, 아니면 SI 접두사를 사용하는 맞춤 솔루션을 사용하는 것이 더 좋습니까?

+0

당신이 괜찮다에 포맷터의 unitOptiojs 속성을 필요 .naturalScale https://developer.apple.com/reference/foundation/measurementformatter.unitoptions – Paulw11

답변

3

해결책은 간단하다 :

let length = Measurement(value: 200, unit: UnitLength.centimeters) 
let f = MeasurementFormatter() 
f.unitOptions = MeasurementFormatter.UnitOptions.naturalScale 
f.numberFormatter.maximumFractionDigits = 2 
let str = MeasurementFormatter().string(from: length)