본문 바로가기

enum

(3)
[Swift] Namespace 네임스페이스 란? (Struct, Enum 활용) 다른 라이브러리, 프레임워크와 이름이 충돌되지 않기 위해 Objective-C 클래스에는 고유한 이름이 있습니다. 애플이 UIView, CGRect, CALayer 와 같이 Objective-C 클래스에 접두어를 사용하는 이유입니다. 하지만 스위프트 모듈은 클래스 접두사가 필요하지 않습니다. 스위프트는 현재 모듈 내의 네임스페이스(Namespace) 유형과 상수에 대한 솔루션을 제공하지 않고 있습니다. 스위프트로 작업할 때 일반적인 문제는 프로젝트를 함께 진행하는 개발자 누구나 쉽게 이해하는 방식으로 상수를 정의하는 것입니다. Objective-C 에도 유사한 고민이 있습니다. 모든 상수에는 이름 충돌을 피하기 위해 두 개 또는 세 개의 글자가 앞에 붙고 용도를 설명합니다. NSString * const..
[Swift] Enum 열거형 정복하기 2편 (Enum Case Pattern) 연관값(associated values)을 가진 열거형(enumeration)의 case를 매칭시킬 때 이 패턴을 사용합니다. switch 문, if 문, guard 문, for-in 문, while 문에서 모두 사용이 가능합니다. 기본적인 문법을 먼저 살펴보도록 하겠습니다. case Enum.case(let name): case Enum.case(var name): 각 케이스의 연관값은 상수나 변수로 바인딩이 가능합니다. case let Enum.case(name): case var Enum.case(name): 바인딩 방식이 동일하다면 let, var 키워드를 case 뒤에 바로 써줍니다. 대부분의 경우, 열거형의 형식은 추론이 가능하기 때문에 열거형 이름은 생략이 가능합니다. 열거형 이름을 생략하여..
[Swift] Enum 열거형 정복하기 1편 (Raw, Associated Values) 열거형(Enumeration)은 연관된 값들의 집합을 공통된 타입으로 정의하는 것입니다. 열거형은 type-safe 하게 코딩할 수 있는 방법이죠. 주로 요일과 같이 한정된 경우의 수를 정의할 때 사용합니다. 기본적인 문법은 아래와 같습니다. enum Name { case firstCase case secondCase } 열거형의 이름은 주로 단수형을 사용합니다. C나 Objective-C와는 다르게 각 case 에 기본적인 정수값(0, 1, 2 ...)이 할당되지는 않습니다. Raw Values 열거형의 case 는 모두 독립적인 값이지만 내부에 또 다른 값을 저장할 수 있습니다. 이것을 원시값(raw value)이라고 합니다. 열거형을 정의할 때 원시값 저장은 필수사항이 아닙니다. 직접 만든 열거형에..