[ios/swift]Properties

감자맨·2022년 7월 30일
0

swift

목록 보기
11/14
post-thumbnail

📒📕 📗📘📙📚📖 swift 문법을 공부하자!📒📕 📗📘📙📚📖

저장 프로퍼티

단순히 값을 저장하고 있는 프로퍼티 이다. 이 프로퍼티는 let키워드를 이용해서 상수 혹은 var키워드를 이용해서 변수로 선언해 사용할 수 있다.
구조체와 클래스에서만 사용 가능. 저장 프로퍼티는 사용 시점에 따라서 Lazy Stored Property(지연 저장 프로퍼티)라는 것도 있음.

struct Information {
    var age: Int  //저장 프로퍼티
    var country: String  //저장 프로퍼티
}
 
//구조체에는 기본적으로 저장프로퍼티 매개변수를 갖는 이니셜라이저가 있음
let PersonalInfo: Information = Information(age: 25, country: "한국")

연산 프로퍼티

클래스, 구조체, 열거형에서 사용된다. 저장 프로퍼티와 달리 저장 공간을 갖지 않고, 다른 "저장 프로퍼티"의 값을 읽어 연산을 실행하거나, 프로퍼티로 전달받은 값을 다른 프로퍼티에 저장한다. 때문에 항상 var로 선언되어야 한다.

var storedProperty = "hi" {
    willSet {
        print(newValue)
    }
}
var anotherProperty = ""

var computerProperty: String{
    get {
        return storedProperty + "world"
    }
    set {
        anotherProperty = newValue
        print(newValue)
    }
}
print(storedProperty)
print(computerProperty) // get 읽기
computerProperty = "abc" // set 쓰기
storedProperty = "world"
// hi
// hiworld
// abc
// world

프로퍼티 옵저버

프로퍼티 값의 변화를 관찰하는 것으로, "저장 프로퍼티"에 추가할 수 있다. 새 값의 속성이 현재 값과 동일하더라도 속성 값이 설정되면 호출된다.

var storedProperty = "hi" {
    willSet {
        print(newValue)
    }
}

print(storedProperty)  //hi
profile
나는 코딩하는 감자다!

0개의 댓글