iOS 기본 (swift)
[iOS - swift] switch문 CaseIterable, allCases
jake-kim
2021. 3. 14. 02:21
switch문의 CaseIterable
- CaseIterable 프로토콜은 allCases라는 static var를 사용할 수 있도록 제공

- 사용 방법 예시 - api를 request했을 때 실패한 경우, 응답값을 받은 상태이고 그 응답값이 미리 정한 enum타입에 속하는지 확인
- enum 타입 정의 (CaseIterable 프로토콜 적용)
enum RequestFailType: String, CaseIterable {
case unknown
case network
}
- api로 부터 failTypeId를 받은 상태 (테스트이므로 아래는 하드코딩)
let failTypeId = "unknown"
- failTypeId가 정의한 enum타입에 속하는지 확인
- allCases는 enum의 모든 타입이 담겨진 배열
RequestFailType.allCases // [RequestFailType.unknown, RequestFailType.network]
let isRequestCancelType = RequestFailType.allCases.map({ $0.rawValue }).contains(failTypeId)
print(isRequestCancelType) // true