본문 바로가기

iOS/Swift

Swift) 열거형(Enumeration) 심화편

 

 

 

안녕하세요, 소들입니다 :)

요즘 포스팅을 잘 안하게 되는 거 같아요 인생

요즘 제 모토는 정말 하기 싫은 일이 있을 때 해결하는 방법은

그 일을 빨리 해버리는 것이라고 생각하는데

 

어..

저도 제가 뭐라 씨부리는지 잘 모르겠네요 😇

포스팅 하기 귀찮단 말 돌려한듯

 

쨌든 Swift Enum을 정복하기 위해 포스팅 해봅니다 :)

열거형에 대해 어색하신 분들이라면

이 포스팅을 먼저 보고 와주세요~~!!!

 

모든 포스팅은 편의 말투로 합니다~!!

 

 

 

 

1. Associated Values(연관값)

 

자, 우리는 이전 포스팅에서 Raw Value란 것에 대해 공부 했음!!!

열거형에 원시값을 지정해주는 것인데, 내가 만약 Apple 제품에 대해

열거형을 만들었음

 

 

 

 

이렇게 Raw Value를 통해 case 별로 원하는 값을 지정해주어도 되지만,

Apple 제품이 모두 iPad5 128GB이고, iPhone6 64GB일리는 없잖음...???

이처럼 Raw Value를 사용할 경우,

 

모든 case가 동일한 형식(위에선 String)으로 Raw Value를 가져야 하고,

case 별 값은 미리 지정된 한 가지 값만 가질 수 있음

 

이라는 단점을 지니고 있음!!!

따라서 이를 보완해서 사용할 수 있는 것이 바로 

associated value 즉, 연관값 이라는 것임!!!!

 

 

 

1-1. 연관값을 가지는 열거형 선언 방법

 

먼저 선언 방식은 다음과 같음!!!

 

 

 

 

이렇게 case 옆에 튜플 형태로 원하는 Type을 명시하면 됨!!

이때 Tuple은 Named Tuple도 되고, Unnamed Tuple도 가능함

 

따라서, 아까 Raw Value로 한계가 있던 예제를 연관 값으로 바꾸면

 

 

 

 

이런 식으로 튜플을 활용해서, 내가 원하는 연관값을 받을 수 있게 

선언해줄 수 있음!!! 그럼 어떻게 사용하냐?

 

 

 

1-2. 연관값을 가지는 열거형 생성 방법

 

열거형 생성 시 연관값을 함께 전달한다

 

 

 

 

이렇게 열거형 생성 시 내가 만들어둔 case가 연관값이 함께 뜨고!!!

 

 

 

 

이렇게 열거형에 직접 값을 지정해서 사용할 수 있음:)

 

 

 

1-3. 연관값을 가지는 열거형의 Switch 매칭

 

 

 

 

switch 매칭 시킬 때,

이런 식으로 다양하게 연관값을 매칭시켜서 사용할 수 있음!!!!

설명은 주석으로 다해놨으니 패쓰

 

 

 

1-4. 연관값을 가지는 열거형의 if 사용법

 

 

 

 

이런 식으로, if를 통해서도 연관값을 매칭시킬 수 있음!!!

설명은 주석으로 다해놨으니 패쓰

 

 

 

 

2. 프로토콜을 채택하는 열거형

 

Class, Struct와 마찬가지로, Enum에서도 프로토콜을 채택할 수 있음!!

 

 

 

 

이렇게 CaseIterable처럼 내가 원하는 프로토콜을 채택할 수 있고,

해당 프로토콜에 지정된 allCases 또한 당연히 사용할 수 있음!!! :)

 

 

 

 

 

 

 

.

.

.

포스팅이 대충인것 같다면 그것은 기분탓입니다

하하하하하하하하하하ㅏ하하

얼른 슬럼프를 이겨내고 다시 열심히 해야지 :)

읽어주신 분이 있따면 감사합니다 안농



Calendar
«   2024/04   »
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
최근 댓글
Visits
Today
Yesterday