Swift 공식문서 읽기...Day6

김민종·2021년 8월 21일
0

Swift Doc

목록 보기
6/26

Properties..

프로퍼티의 종류에는 저장프로퍼티와 계산된 프로퍼티가 있다. 이때 저장프로퍼티는 클래스와 구조체에서만 사용가능하다.저장프로퍼티는 말그대로 값을 저장하는 형태이다. 저장프로퍼티는 변수와 상수 모두 선언 가능하다.

구조체에서 상수로 선언된 값은 인스턴스의 프로퍼티가 변경이 불가능하다. 하지만 클래스는 참조타입이기에 변경이 가능하다!

lazy stored properties는 lazy키워드를 통해 선언되고 처음으로 사용되기 전까지 계산되지않는다... 그래서 lazy..
lazy properties는 요소가 끝나기전까지 그값을 알 수 없거나 복잡해 계산에 부하가 걸리는 작업들 전에 사용하기 좋다.

Computed Properties
계산 된 프로퍼티는 실제 값을 저장하고 있는 것이 아니라 간접적으로 다른 프로퍼티에 값을 설정 할 수 있는 방법을 제공한다.읽기 전용 계산된 프로퍼티는 반드시 반환값을 제공하고 다른 값으로 지정이 불가능하다.

property observers
프로퍼티에는 새값이 설정되면 이벤트를 감지할 수 있는 옵저버가 있다.
상속된 값에서는 setter를 옵저버로 사용할 수 있다. 새로운 옵저버를 만드는 것보다 효율적이다.

will set 과 did set 옵저버가 있는데 will set은 값이 저장되기 바로 직전에 호출되고 did set은 값이 저장 된 직후 호출된다.
will set에서 기본값으로 new value를 사용할 수 있다.
did set에서는 기본값으로 old value를 사용한다.

global and local variables
전역변수와 지역변수란 전역변수는 함수, 메소드,클로저 밖에서 정의된 변수이고 지역변수는 안에서 정의된 변수이다.
전역변수는 항상 lazy stored properties이다 반면 지역변수는 절대 아니다.

타입프로퍼티 선언을 위해서 static키워드를 사용한다.class로도 프로퍼티 선언이 가능한데 이는 서브클래스에서 오버라이딩이 가능하다.타입프로퍼티는 왜쓰나? 검색해본 결과 함수나 구조체등에서 전체에서 같은값을 고정해서 사용하기위해? 사용한다고 한다. 오디오레벨 예시를 보면 조금을 알수 있다. thresholdlevel을 static let으로 선언해서 아래로 호출 될 때 그값이 10으로 고정되어 사용되는 것을 의미한다. 10을 초과하는 값이라도 10으로 출력된다. 내가 생각했을때 사용이유는 10이란 값을 타입스크립트는 무조건 설정해 주어야 하기 떄문에 사용하는 것 같다. ...dkak...

profile
신입 ios개발자입니다!

0개의 댓글