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 |