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
복사
여기서부터는 두갈래 길이다
객체가 하나 이상이지만 공유할 때도 있고 아닐 때도 있고
하나의 객체만을 만들경우 ( 싱글톤 객체)