ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Swift> Properties
    iOS/개념정리 2022. 2. 22. 14:09

    먼저 프로퍼티에는 3가지 종류가 있다.

    1. Stored Property(저장 프로퍼티)

    2. Computed Property(연산 프로퍼티)

    3. Type Property(타입 프로퍼티)

     

    stored property(저장 프로퍼티)는 상수와 변수를 값을 인스턴스 일부로 저장하고 클래스와 구조체에서만 사용한다.

    반면 computed property(연산 프로퍼티)와 type property(타입 프로퍼티)는 특정 연산을 수행한 다음에 반환하고

    클래스 구조체 열거형에서 사용한다.

     

    Stored Property(저장 프로퍼티)

    저장 프로퍼티는 클래스와 구조체에서만 적용됩니다.

    stored property example

    예시는 구조체 입니다.

    예시에서 var 는 변수 저장 프로퍼티이고, let은 상수 저장 프로퍼티 입니다.

    초기값을 10, 20 으로 각각 변수, 상수에 저장을 하고, 상수에 값을 10을 넣으려 할때 상수이기 때문에 오류가 납니다.

     

    Lazy Stored Property

    Lazy Stored Property는 값이 사용되기 전까지 계산되지 않는 프로퍼티 입니다.

    lazy stored property example

    Computed Property(연산 프로퍼티)

    연산 프로퍼티는 값을 저장하기보단 연산을 처리하고 반환한다.

    클래스, 구조체, 열거형에 사용됩니다.

     

    get, set, willSet, didSet은 프로퍼티 값을 초기화 하고 이를 가져오는 기능을 한다.

     

    각각 살펴보면 get, set이 한 묶음이고,

    willSet, didSet이 또 다른 한 묶음이다.

     

    get, set in Swift

    get, set은 흔히 아는 getter, setter와 비슷하다.

     

    property는 get, set과 직접 연결되어 있기 때문에 get, set안에서 property를 접근하면 자기자신 property가 호출되므로

    이러한 방법은 맞지 않다.

    맞는 예시

    위와 같이 외부에서 property에 값을 할당하거나 접근 할 경우 실제로 저장되는 데이터는 _property이다.

     

    didSet, willSet in Swift

    didSet, willSet은 swift에서 제공하는 property Observer 이다.

    사용 방법은 아래와 같다.

    didSet, willSet example

     

    Type Property(타입 프로퍼티)

    클래스 구조체 열거형에서 사용한다.

    저장 타입 프로퍼티와 연산 타입 프로퍼티가 존재한다.

    저장 타입 프로퍼티는 항상 선언할때 원하는 값으로 초기화 해줘야 한다.

    "static"으로 선언하면 자동으로 lazy 된다.

     

    type property example

    타입 프로퍼티는 모든 타입의 공통적인 값을 처리하는데 유용하게 사용합니다.

     

    'iOS > 개념정리' 카테고리의 다른 글

    <Swift> iOS 건강 데이터 사용하기- HealthKit  (2) 2022.03.18
    <Swift> 코드 컨벤션  (0) 2022.03.05
    <Swift> Delegate 활용  (0) 2022.02.21
    [Swift] 고차함수  (1) 2022.02.17
    <Swift> Delegate  (1) 2022.01.25

    댓글

Designed by Tistory.