samsung-ga / woody-iOS-tip

🐶 iOS에 대한 소소한 팁들과 개발하다 마주친 버그 해결기, 그리고 오늘 배운 것들을 모아둔 레포
19 stars 0 forks source link

[TIL] 상수를 정리하거나 namespace를 만들 때, enum을 쓰는 이유 #12

Open samsung-ga opened 2 years ago

samsung-ga commented 2 years ago

비슷한 상수들끼리 한 곳에 모아두게 되거나 Pallete와 같이 앱에 사용되는 Color들을 한 곳에 모아두는 namespace를 만들어 사용하면 재사용성과 유지보수 측면에서 큰 향상을 가져온다.

이 때, namespace와 상수들을 모아두는 객체는 struct 대신 enum을 사용하는 이유는 무엇일까?

Answer

  1. private init() {} 선언해주기
  2. case가 없는 enum 만들기
    enum ColorPalette {
        static let Red = UIColor(red: 1.0, green: 0.1491, blue: 0.0, alpha: 1.0)   
    static let Green = UIColor(red: 0.0, green: 0.5628, blue: 0.3188, alpha: 1.0)
        static let Blue = UIColor(red: 0.0, green: 0.3285, blue: 0.5749, alpha: 1.0)
       
    enum Gray {
        static let Light = UIColor(white: 0.8374, alpha: 1.0)        
        static let Medium = UIColor(white: 0.4756, alpha: 1.0)       
        static let Dark = UIColor(white: 0.2605, alpha: 1.0)    
    }
    }

    결국, enum 자료형은 생성자가 없기 때문에 실수로 코드를 작성하여도 컴파일러가 오류를 잡아주게 됩니다.