willSet: 프로퍼티의 값이 변경되기 전에 호출되서 변경되기전 값을 매개변수로 갖는다.
didSet: 프로퍼티의 값이 변경된 후 호출되어서 변경된 후의 값을 매개변수로 갖는다.
class Person{
var money: Int = 8000 {
willSet {
print("일을하면\(money)원에서 \(newValue)9000원이 될 것 같다")
}
didSet {
print("일을해서\(money)원에서 \(oldValue)원이 됐다")
}
}
}
let work: Person = Person()
print("-----------------------------")
work.money = 9000
결과
-----------------------------
일을하면8000원에서 9000이 될 것 같다
일을해서8000원에서 9000원이 됐어
주의점
var 를 초기화 하는 과정에 didSet, willSet 이 호출되면, didSet, willSet이 호출되지 않음
예를들어 화면을 그릴때 didSet을 통해서 그리면 변수에 didSet을 하지않고
@IBOutlet weak var view:View:{
didSet{
update()
}
}
해준다
'앱 > iOS(Swift)' 카테고리의 다른 글
[스위프트] NSOperationQueue 와 GCD Queue 의 차이점 (0) | 2022.01.12 |
---|---|
[스위프트] Bounds, Frame 차이점 (0) | 2022.01.12 |
[스위프트] Array, Tuple, Set, Dictionary (0) | 2022.01.12 |
[Swift] 스위프트란 무엇인가 (0) | 2022.01.12 |
Xcode 시뮬레이터, Playground등 사용시 Spotlight cpu 100% 되는 현상 (0) | 2021.12.23 |
댓글