Search
Duplicate

ObservableObject protocol : 뷰 반응형 데이터모델 클래스에 사용

태그

ObservableObject protocol

~~매니져 클래스에 사용하게된다

@Published 속성으로 선언된 변수가 값이 변경되면 외부에 알린다!!!!
ObservableObject를 준수하는 클래스는 @Published 속성으로 선언된 변수가 값이 변하려고 할 때(willSet) 외부에 퍼블리싱을 합니다.

사용법

1.
앱 전반에 걸쳐서 공유하고 싶은 데이터를 클래스파일로 따로 정의한다
2.
이렇게 정의한 클래스에 ObservableObject 프로토콜을 채택한다
3.
외부에서 참조할 변수를 @Published 어노테이션으로 지정해준다
import Foundation import Combine class TimerData : ObservableObject { //ObservableObject 프로토콜을 채택 @Published var timeCount = 0 //@Published 어노테이션 var timer: Timer? init(){ //이 클래스의 객체가 생성될 실행되는 코드블럭 timer = Timer.scheduledTimer(timeInterval: 1.0, target:self, selector: #selector(timerDidFire), userInfo: nil, repeats: true) } @objc func timerDidFire(){ timeCount = timeCount+1 } func resetCount(){ timeCount=0 } }
Swift
복사

여기서부터는 두갈래 길이다

객체가 하나 이상이지만 공유할 때도 있고 아닐 때도 있고
하나의 객체만을 만들경우 ( 싱글톤 객체)