SwiftUI에서 @EnvironmentObject 사용하려고 하는데 SceneDelegate.swift 파일을 사용하라고 한다. SceneDelegate.swift은 UIKit 프로젝트 생성시 함께 만들어주는데 스유는 그런게 없다. 그래서 찾아보니까 뭐.., 파일을 만들고.. info 파일도 수정하고 ... 어쩌구 저쩌구 하래서 더 편한 방법이 없을까 싶어 찾아보게 되었다.
@EnvironmentObject var timerData: TimerData
내가 ContentView에서 선언한 EnvironmentObject 이다. 이를 위해 프로젝트 명과 같은 파일명을 가진 swift 파일에 접근해 다음과 같이 let을 통해 변수를 생성해주고, contentview를 호출해주면 된다
import SwiftUI
@main
struct ObservableDemoApp: App {
let timerData = TimerData()
var body: some Scene {
WindowGroup {
ContentView().environmentObject(timerData)
}
}
}