Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- swiftUI
- UITextView
- collectionview
- Observable
- RxCocoa
- Xcode
- uitableview
- rxswift
- clean architecture
- map
- 스위프트
- uiscrollview
- 클린 코드
- 애니메이션
- swift documentation
- ribs
- SWIFT
- 리펙토링
- 리펙터링
- MVVM
- ios
- combine
- Human interface guide
- 리팩토링
- tableView
- HIG
- Clean Code
- UICollectionView
- Protocol
- Refactoring
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] Measurement, MeasurementFormatter 개념 (#단위 변환, cm, m) 본문
iOS 응용 (swift)
[iOS - swift] Measurement, MeasurementFormatter 개념 (#단위 변환, cm, m)
jake-kim 2023. 10. 5. 01:01Measurement 개념
- 1, 2, 3과 같은 숫자에 cm, m 같은 문자열도 같이 붙여서 관리해주는 struct 형태의 Unit
ex) 1이라는 meter 단위의 숫자가 있을 때, 이것을 cm 단위로 바꾼 후, 뒤에 "cm"를 붙여서 "100 cm"로 만들고 싶은 경우?
- 보통은 Int, Double Extension으로 계산식을 넣어서 사용하지만 Measurement를 사용하면 이것들을 모두 지원해주기 때문에 단위 변환이나 "cm"와 같은 이름을 붙이기가 유용
MeasurementFormatter 개념
- Measurement로 인스턴스를 만든 후 이 값에 특정 "cm"와 같은 이름을 붙여서 하나의 문자열로 만들 수 있는 포멧터
Measurement로 5 숫자를 500cm로 변환하기
- meter를 나타내는 Measurement 인스턴스를 생성 & cm단위로 변환
let lengthInMeters = Measurement(value: 5, unit: UnitLength.meters)
let lengthInCentimeters = lengthInMeters.converted(to: .centimeters)
- MeasurementFormatter를 사용하여 길이를 문자열로 포멧팅
let formatter = MeasurementFormatter()
formatter.unitOptions = .providedUnit
formatter.numberFormatter.maximumFractionDigits = 2
- formatter 메소드인 string(from:)을 사용하여 "cm"달아주기
@available(macOS 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
extension MeasurementFormatter {
public func string<UnitType>(from measurement: Measurement<UnitType>) -> String where UnitType : Unit
}
적용 완료)
let formattedLength = formatter.string(from: lengthInCentimeters)
print("길이: " + formattedLength) // 길이: 500 cm
* 전체 코드: https://github.com/JK0369/ExMeasurementFormatter
* 참고
https://developer.apple.com/documentation/foundation/measurementformatter
https://developer.apple.com/documentation/foundation/measurement
'iOS 응용 (swift)' 카테고리의 다른 글
Comments