Swift/학습

[Swift] CaseIterable에 대해 알아보자!

언클린 2022. 1. 17. 21:19
728x90

이번 글에서는 CaseIterable에 대해 알아보겠습니다.

간혹 열거형 Enum 을 사용 중 전체적인 케이스를 얻고 싶을 때

사용하면 유용합니다! (0_0)


1. CaseIterable이란?

CaseIterable 은 선언한 열거형의 모든 값을 컬렉션을 제공하는 프로토콜입니다.

 

https://developer.apple.com/documentation/swift/caseiterable

 

Apple Developer Documentation

 

developer.apple.com

 

2. 사용

한 번 예시를 통하여 확인해 보겠습니다!

CaseIterable 을 사용하면 컬렉션 형태로 열거형의 값들을 사용할 수 있게 됩니다. 

전체적인 케이스 별로 동작을 진행할 경우, 혹은 페이지를 사용할 경우 등 활용하면 좋을 것 같습니다!

enum Country: CaseIterable {
    case KOREA
    case JAPAN
    case CHINA
    case USA
    case RUSSIA
    case CANADA
    case INDIA
}

let countryList: Array<Country> = Country.allCases

countryList.forEach { item in
    print(item)
}

3. 주의점

The compiler can automatically provide an implementation of the CaseIterable requirements for any enumeration without associated values or @available attributes on its cases.

 

즉, @available 속성을 가진 case 문이 없는 열거형이여만 합니다. (^^)/

 

마무리

이번 글에서는 간단히 CaseIterable 에 대해 알아보았습니다!

저 같은 경우는 개발에 열거형을 자주 사용하는 편인데 전반적인 케이스를 관리할 때는 여러모로 도움을 많이 받는 유형입니다!

활용에 있어서 이번 글이 도움이 되었으면 좋겠습니다!


환경 

Xcode 13.2.1

Swift 5

 

 

 

 

728x90