【Swift UI】ObservableObject와 ObservedObject를 이해하기 위한 시계 앱
이 기사는 무엇인가
SwiftUI 프레임워크를 통한 앱 개발의 데이터 흐름을 이해하기 위해 간단한 시계 앱을 만듭니다.
환경
macOS 11.1
Xcode 12.3
Swift 5.3
코드
앱 진입점@main
struct WatchApp: App {
let clock = Clock()
var body: some Scene {
WindowGroup {
ContentView(clock: clock)
}
}
}
ObservableObject 클래스class Clock: ObservableObject {
var timer = Timer()
@Published var currentTime = ""
init() {
start()
}
func start() {
let formatter = DateFormatter()
formatter.timeStyle = .medium
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { (_) in
self.currentTime = formatter.string(from: Date())
})
}
func stop() {
timer.invalidate()
}
}
ContentViewimport SwiftUI
struct ContentView: View {
@ObservedObject var clock = Clock()
var body: some View {
Text("\(clock.currentTime)")
.font(.title)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
Group {
ContentView(clock: Clock())
}
}
}
Reference
이 문제에 관하여(【Swift UI】ObservableObject와 ObservedObject를 이해하기 위한 시계 앱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/imchino/items/297f31813d9784d849c4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
앱 진입점
@main
struct WatchApp: App {
let clock = Clock()
var body: some Scene {
WindowGroup {
ContentView(clock: clock)
}
}
}
ObservableObject 클래스
class Clock: ObservableObject {
var timer = Timer()
@Published var currentTime = ""
init() {
start()
}
func start() {
let formatter = DateFormatter()
formatter.timeStyle = .medium
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { (_) in
self.currentTime = formatter.string(from: Date())
})
}
func stop() {
timer.invalidate()
}
}
ContentView
import SwiftUI
struct ContentView: View {
@ObservedObject var clock = Clock()
var body: some View {
Text("\(clock.currentTime)")
.font(.title)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
Group {
ContentView(clock: Clock())
}
}
}
Reference
이 문제에 관하여(【Swift UI】ObservableObject와 ObservedObject를 이해하기 위한 시계 앱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/imchino/items/297f31813d9784d849c4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)