Extension

작성일

Extension

  • 기능확장
  • Struct, Class, Enum, Protocol

숫자(int) 짝수, 홀수

extension Int {
  var oddOrEven: String {
    if self % 2 == 0 {
      return "짝수"
    }
    return "홀수"
  }
}

이렇게해서 기능을 확장시키는 것이다.
사용하는 방법은

3.oddOrEven

이렇게 사용을 하는 것이다. 출력

"홀수"

다른 예시로,
UIColor가 있는데, 이건 화면에 버튼의 색이나, 텍스트의 색갈을 정하는 것이다.

extension UIColor {
  var mainColor1: UIColor {
    UIColor(red: 50/255, green: 70, 255, blud: 120/255, alpha: 1)
  }
}

var button = UIButton()

button.titleLabel?.textColor = UIColor().mainColor1 //Class는 인스턴스화 시켜줘야함.

이렇게 사용하면 같은 코드를 여러개 사용하는 것보다. 하나로 통합해서 쉽게 관리할 수 있다.
위 코드를 Class화 시키면,

extension UIColor {
  class var mainColor1: UIColor {
    UIColor(red: 50/255, green: 70, 255, blud: 120/255, alpha: 1)
  }
}

var button = UIButton()

button.titleLabel?.textColor = UIColor.mainColor1 //인스턴스화를 안시켜줘도 된다.

인스턴스 화를 안시켜줘도 된다.
따라서 축약이 가능하다. 축약을하면

button.titleLabel?.textColor = UIColor.mainColor1

이부분이

button.titleLabel?.textColor = .mainColor1

이렇게 바뀔수 있다.(static도 class와 같다.)