본문 바로가기

Tech/iOS

[iOS] Day 14 - Extension

728x90

주말이 끝나간다

오늘도 달려보자

 


Extension

Swift의 Extension 기능은 Class, Struct, Enum, Protocol 타입에 새롭게 기능적인 부분을 추가할 수 있는 문법

Extension 기능은 이전의 내부 소스를 접근할 수 없는 원본 타입들에 대해 새로운 기능을 부여할 수 있는 방법

 

- 연산프로퍼티, 연산타입 프로퍼티 추가 기능

- 인스턴스 메서드, 타입 메서드

- 새로운 Initializer 제공

- subscript 접근 방식 정의

- 중첩타입의 정의 및 사용

- Protocol 확장

 


extension UIViewController {
     func setBackgroundColor() {
    	view.backgroundColor = .red
      }
      
     var testForExtension: Int {
   		get {
        	return 10
        }
     }
 }

 

Extension을 통해서 UIViewController class에 매서드와 연산 프로퍼티를 추가하면 해당 클래스르 상속받는 다른 클래스에도 추가한 기능들을 사용할 수 있는 것을 확인할 수 있다

 

Extension을 무분별하게 남용하게 된다면 코드의 가독성을 저해할 수 있으므로 이점을 주의해서 사용해야한다

 

이후 Extension은 교육과정에서 쓰일 때 마다(위에 나열한 기능들을 사용시) 업데이트 할 예정이다