본문 바로가기
Swift

Swift: 프로퍼티와 메서드

by HaningYa 2020. 7. 13.
728x90

 

프로퍼티

클래스, 구조체 또는 열거형 등에 관련된 값

  • 저장 프로퍼티: 인스턴스의 변수 또는 상수 (구조체, 클래스에만 사용 가능)
  • 연산 프로퍼티: 특정 연산을 실행한 결괏값
  • 타입 프로퍼티: 특정 타입에 사용되는 프로퍼티 (클래스 변수) - static

*프로퍼티 감시자: 프로퍼티 값이 변할 때 값의 변화에 따른 특정 작업 실행 (저장 프로퍼티에 적용가능, 부모 클래스로부터 상속 가능)


지연 저장 프로퍼티 (lazy var)

  • 호출이 있어야 값을 초기화 한다.
  • 인스턴스를 초기화 하면서 굳이 모든 저장 프로퍼티를 사용할 필요가 없을 때 사용한다.

굳이 메서드를 쓰지않고 연산 프로퍼티를 쓰는 이유

  • 인스턴스 외부에서 메서드를 통해 인스턴스 내부 값에 접근하려면 메서드 두개(접근자, 설정자)를 구현해야한다. (코드 가독성 저하)
  • 연산 프로퍼티를 사용하면 하나의 프로퍼티에 접근자(get)와 설정자(set)가 모두 모여있고 어떤 역할을 하는지 명확하게 표현할 수 있다.

프로퍼티 감시자

프로퍼티 값이 새로 할당될 떄마다 호출된다. (변경되는 값이 같더라도 호출됨)

  • willSet: 값이 변경되기 직전에 호출
  • didSet: 값이 변경된 직후에 호출

메서드

  • 특정 타입에 관련된 함수
  • struct 에서 사용시 mutating을 붙여 내부 값을 변경한다는걸 명시해야함

타입 메서드

  • 타입 자체에 호출이 가능한 메서드 
  • static으로 정의하면 상속 후 메서드 재정의 불가능
  • class로 정의하면 상속 후 메서드 재정의가 가능

 

 

 

 

 

 

728x90

'Swift' 카테고리의 다른 글

[DI] Initializer로 Swift 의존성 주입하기  (0) 2020.09.03
ARC - Automatic Reference Counting  (0) 2020.08.24
Swift: 구조체 vs 클래스  (0) 2020.07.13
Swift enum - 열거형  (0) 2020.07.09
Swift Set  (0) 2020.07.09

댓글