
안녕하세요
오늘은 프로퍼티 2번째 시간입니다
프로퍼티 옵저버와
타입프로퍼티에 대해서 배우고자 합니다
저번시간에
모르겠다 하시는 분들은
한 번 읽어보고 이 게시글을 보는것을 추천드립니다
프로퍼티 옵저버
(Property Observer)
값이 변경될 때 이를 알아차리고 반응하는 객체입니다
옵저버는 프로퍼티 값이 설정될 때 마다 항상 호출됩니다
만약 현재 값과 동일한 값이 할당되더라도 프로퍼티 옵저버는 호출이 된답니다
프로퍼티 옵저버는 2가지 종류가 있습니다
willSet / didSet
용도가 반대된답니다
속성이 변하는 시점을 알아차리고 호출되는 코드를 짜는 자체가 어렵기 때문에
실제 프로젝트에서 많이 사용하는데
여기서 didSet을 더 많이 사용합니다
매개상수는 didSet(매개상수) / willSet(매개상수)를 넣을 수 있지만
기본적으로 oldValue / newValue를 제공하고 있습니다
타입 프로퍼티
클래스나 구조체 또는 열거형과 같은 객체 자체에 관련된 값을 다루어야 할 때
인스턴스를 생성하지 않고
클래스나 구조체 자체에 값을 저장하는 경우를 타입 프로퍼티라고 부릅니다
클래스 구조체의 인스턴스에 속하는 값이 아닌
자체에 저장하고 모든 인스턴스가 공통으로 사용할 수 있습니다
모든 인스턴스들이 공유해야하는 값을 정의할 때 유용하답니다
클래스나 구조체 열거형 안에서 static 을 선언하고 상수나 변수 전역범위를
가질 수 있답니다
타입 프로퍼티를 선언할 때는 초기값을 반드시 할당해야합니다
타입 프로퍼티는 인스턴스와 연관되지 않는 별개의 아이랍니다
이렇게 인스턴스화 해도 접근할 수 없는걸 위 그림에서 볼 수 있습니다
접근하려면??
static은 전역으로 접근이 가능하기에 공통적으로 다루는
데이터를 static으로 정하고 사용합니다
즉 클래스의 인스턴스가 아닌 클래스 자체에 정보를 저장하고 관리할 때 유용합니다
게임에서는
점수 / 레벨
사용자의 개인 데이터를 여러곳에서 공유하는 경우에 사용했었습니다
이렇게 willSet / didSet과
타입 프로퍼티에 대해서 간단히 알아보았습니다
타입 프로퍼티는 앞으로 상속을 배웠을 때 좀 더 심화해서 정리해보겠습니다

읽어주셔서 감사합니다
혹시 잘못된 정보가 있다면 꼭 댓글로 알려주시면 감사하겠습니다❤️
'Swift' 카테고리의 다른 글
Swift | class(클래스)와 struct(구조체)에 관하여 - 상속(inheritance)과 재정의(overriding vs overloading) (1) | 2024.05.16 |
---|---|
Swift | class(클래스)와 struct(구조체)에 관하여 - 메서드(method) (0) | 2024.05.16 |
Swift | AnyObject / Any란? (0) | 2024.05.14 |
Swift | class(클래스)와 struct(구조체)에 관하여 - 2 property (저장 프로퍼티 / 계산 프로퍼티) (0) | 2024.05.14 |
Swift | class(클래스)와 struct(구조체)에 관하여 - 1 (0) | 2024.05.14 |