Swift 기초 문법 -7. 프로퍼티 옵저버

정성윤·2023년 7월 10일
0

Swift 이론

목록 보기
9/64

ObserableObject

관찰이 가능한 객체

Swift. UI프레임워크에서 사용되는 프로토콜입니다. SwiftUI에서 데이터의 변경을 감지하고 그에 따라 뷰를 업데이트하는 데 사용됩니다.

프로토콜을 채택하는 클래스나 구조체의 속성이 변경될 때마다 해당 변경을 SwiftUI에 알리고, 화면이 자동 갱신됩니다.

import SwiftUI

class MyModel: ObservableObject {
    @Published var data: String = "Initial Data"
    
    func updateData(newData: String) {
        self.data = newData
    }
}

여기서 @Published 프로퍼티 래퍼는 ObservableObject를 사용하여 데이터 변경을 감지하고 뷰를 업데이트하는데 사용됩니다. 해당 속성이 변경될 때마다 SwiftUI는 해당 변경을 감지하고 자동으로 뷰를 업데이트합니다.

MyModel 클래스는 ObservableObject를 채택하고, @Published 속성 래퍼를 사용하여 data 속성을 표시합니다. updateData 메서드를 호출하여 data 속성을 업데이트하면 해당 변경이 SwiftUI에 자동으로 알려져 뷰가 갱신 됩니다.

프로퍼티 옵저버(Property Observer)는 Swift에서 프로퍼티의 값 변화를 감지하고 그에 대한 추가 동작을 수행하는 기능입니다. 프로퍼티 옵저버는 프로퍼티의 값이 변경되기 전과 후에 특정 코드 불록을 실행할 수 있도록 지원합니다.

  1. 'willSet' 옵저버 : 프로퍼티의 값이 변경되기 직전에 호출되는 옵저버입니다. 변경될 값에 접근할 수 있는 'newValue' 매개변수를 사용할 수 있습니다.
var myProperty: Int = 0 {
    willSet(newValue) {
        print("값이 \(newValue)로 변경됩니다.")
    }
}
  1. 'didSet' 옵저버 : 프로퍼티의 값이 변경된 후에 호출되는 옵저버입니다. 이전 값에 접근할 수 있는 'oldValue' 매개변수를 사용할 수 있습니다.
var myProperty: Int = 0 {
    didSet(oldValue) {
        print("값이 \(oldValue)에서 \(myProperty)로 변경되었습니다.")
    }
}

프로퍼티 옵저버는 주로 프로퍼티의 값 변화에 따라 UI업데이트, 다른 프로퍼티 값의 조정, 로그 출력 등의 추가 동작을 수행하는데 사용됩니다. 프로퍼티 옵저버는 모든 저장 프로퍼티와 계산 프로퍼티에 적용할 수 있습니다.

프로퍼티 옵저버를 사용하여 프로퍼티의 값 변화를 감지하고 추가 동작을 수행할 수 있으므로, 코드의 가독성과 유지 보수성을 향상시키는데 도움이 됩니다.

profile
이유있는 스위프트 개발자

0개의 댓글