CaseIterable 프로토콜의 allCases 와 AllCases

2019-09-15
Swift

안녕하세요. 도미닉입니다.

오늘은 CaseIterable 프로토콜을 채택했을 때 사용할 수 있는 메소드들인 allCases 와 AllCases 이 무엇인지 그리고 그 차이에 대해서 알아보겠습니다.

enum 을 활용하는 분이라면 allCases 메소드는 많이 사용해보셨을 거라고 생각합니다.

allcases 란 무엇인가?

enum 에 있는 모든 케이스를 선언한 순서대로 배열로 리턴하는 메소드입니다.

enum 타입이 CaseIterable 을 채택하게 되면 기본적으로 제공됩니다.

allcases 예제는 무엇이 있는가?

numberOfChoices 변수는 Beverage 배열타입입니다.
이 변수에는 [Beverage.coffee, Beverage.tea, Beverage.juice] 가 들어가게 됩니다.

Beverage enum 타입에서 case 를 선언한 순서대로 출력되는 것을 알 수 있습니다.

AllCases 란 무엇인가?

enum 타입이 CaseIterable 을 채택하게 되면 AllCases 라는 메소드도 사용할 수 있습니다.

AllCases 는 원하는 대로 case 를 조합하고 순서를 설정할 수 있습니다.

Allcases 예제는 무엇이 있는가?

AllCases() 를 호출하면 enum 타입을 요소로 갖는 배열이 초기화됩니다.

배열을 다루듯이 append 로 enum 타입의 case 들을 추가해줄 수 있습니다.

원하는 순서와 case 만 추가해서 활용할 수 있습니다.

정리

CaseIterable 에서 allCases 와 AllCases 메소드에 대해서 알아봤습니다.

allCases 는 선언한 순서대로 모든 case 를 반환하는 메소드였습니다.

AllCases 는 원하는 case 만을 조합하여 배열로 활용하는 메소드였습니다.

메소드 이름 첫글자의 대소문자 차이만 가지고 있기 때문에 혼동하기 쉽습니다.

이 글 보시고 사용하시는데 도움이 됬으면 좋겠습니다.

글 읽어주셔서 감사합니다.