⎮ Nested Type(중첩된 타입)
1. 열거형 코드의 위치를 status 위쪽으로 이동하여 중첩

2. status가 Camp Type 안에 있기 때문에 Camp를 생략해도 됨 * scope 밖에서는 Camp.campStatus로만 호출 가능

3. Camp.campStatus처럼 이름이 중복되면, 이름을 변경함

⎮ raw Value(원시 값)
1. 문법
enum TypeName: RawValueType {
case caseName = Value
}
/*
RawValueType : String, Character, Number Types만 가능
Value는 생략해도 되는데, Type마다 정해진 값이 있음
*/
2. 원시값을 Int로 선언했을 때
enum Alignment: Int {
case left //0이 자동으로 저장
case right = 100 //100을 직접 저장
case center // 101을 자동으로 저장
}
Alignment.left.rawValue //0
Alignment.right.rawValue //100
Alignment.center.rawValue //101
Alignment(rawValue: 0) //.left
Alignment(rawValue: 200) // nil
/*
자동으로 저장되는 숫자는 이전 값에서 +1
원시 값에 값을 정한 뒤에는 새로운 값을 저장할 수는 없음
Alignment.left.rawValue = 10 이런 코드는 실행이 불가능함
*/
3. 원시값을 String으로 선언했을 때
enum Weekday: String {
case sunday
case monday
case tuesday
case thursday
case friday
case saturday
}
Weekday.sunday.rawValue // "sunday"
⎮ 원시값을 활용해 Status 개선하기
1. Status에서 Raw Value Type 추가

2. 원시 값 설정

3. 가독성 높이기

4. switch 코드 대체

'Swift > 기초' 카테고리의 다른 글
| Swift | Swift Lint 이해하기(feat. 면접) (0) | 2025.12.03 |
|---|---|
| 38. 스위프트 기초 문법[Modeling(4) - Camp 모델링] (0) | 2025.02.17 |
| 37. 스위프트 기초 문법[Modeling(3)] (0) | 2025.02.17 |
| 36. 스위프트 기초 문법[Modeling(2) - Formatters] (0) | 2025.02.11 |
| 35. 스위프트 기초 문법[Modeling(1) - 모델링 기초와 다양한 속성들] (0) | 2025.02.11 |