STUDY/Swift & iOS

Swift 문법 기초 5

sinawi95 2022. 6. 21. 20:28
728x90

프로퍼티

구조체, 클래스, 열거형 내부에 구현할수 있음

  • 열거형 내부에는 연산 프로퍼티만 가능

프로퍼티의 종류

struct Student {
	var name: String = "dg" // 인스턴스 저장 프로퍼티
	var koreanAge: Int = 1
	var westernAge: Int { // 인스턴스 연산 프로퍼티
		get {
			return koreanAge - 1
		}
		set {
			koreanAge = westernAge + 1
		}
	}
}

인스턴스 저장 프로퍼티: 인스턴스 내부에 저장된 변수

인스턴스 연산 프로퍼티: 인스턴스 내부에 있는 변수이고 연산을 통해 다른 값을 가져오고 세팅할수 있는 변수

  • get 만 있는 경우 읽기전용 프로퍼티로 사용
struct Student {
	static var description: String = "학생"
	static var selfIntroduction: String {
      return "\\(description)타입입니다"
  }
}

타입 저장 프로퍼티: 고정된 값을 저장하는 변수

타입 연산 프로퍼티: 값을 연산(사용)해서 반환하는 변수

지연 저장 프로퍼티

프로퍼티 감시자

값이 변경될때 원하는 동작을 수행할수 있음

willSet: 값이 변경되기 직전에 수행되는 함수

didSet: 값이 변경된 후 바로 수행되는 함수

감시자는 연산 프로퍼티에 사용할수 없음

상속

클래스, 프로토콜에서 사용가능.

열거형 구조체에서는 상속 불가능.

스위프트에서는 다중상속을 지원하지 않음

class ClassName: ParentClass {
}

final: 상속받은 클래스에서 재정의가 불가능하도록 하는 키워드

  • static: 이것도 상속후 재정의가 불가능

class: 재정의 가능한 키워드

override: 상속받은 클래스에서 재정의할때 사용하는 키워드

인스턴스의 생성과 소멸

init:이니셜라이저

  • 프로퍼티의 기본값이 없으면 에러 발생함
  • 이니셜라이저를 사용하여 인스턴스가 가져야할 초기값을 할당할수 있음
  • 초기값이 필요없을때 옵셔널을 사용함
  • init?: 실패가능한 이니셜라이저. 초기값이 잘못된경우 인스턴스 생성에 실패하고 nil을 반환함

deinit: 디이니셜라이저

  • 메모리가 해제되는 시점에 자동 호출됨
  • 클래스 타입에만 구현할수 있음

'STUDY > Swift & iOS' 카테고리의 다른 글

Swift 문법 기초 7  (0) 2022.06.27
Swift 문법 기초 6  (0) 2022.06.25
Swift 문법 기초 4  (0) 2022.06.20
Swift 문법 기초 3  (0) 2022.06.13
Swift 문법 기초 2  (0) 2022.06.09