我曾经使用以下语句将重要的应用程序数据(如登录凭据)保存到 UserDefaults 中:
UserDefaults.standard.set("sample@email.com", forKey: "emailAddress")
Run Code Online (Sandbox Code Playgroud)
现在,我知道 SwiftUI 引入了新的属性包装器,称为:
@AppStorage
谁能解释一下新功能的工作原理?
我的目标是在 SwiftUI 中创建一个从 0 开始的视图。当你按下视图时,计时器应该开始向上计数,再次点击停止计时器。最后,当您再次点击以启动计时器时,计时器应从 0 开始。
这是我当前的代码:
import SwiftUI
struct TimerView: View {
@State var isTimerRunning = false
@State private var endTime = Date()
@State private var startTime = Date()
let timer = Timer.publish(every: 0.001, on: .main, in: .common).autoconnect()
var tap: some Gesture {
TapGesture(count: 1)
.onEnded({
isTimerRunning.toggle()
})
}
var body: some View {
Text("\(endTime.timeIntervalSince1970 - startTime.timeIntervalSince1970)")
.font(.largeTitle)
.gesture(tap)
.onReceive(timer) { input in
startTime = isTimerRunning ? startTime : Date()
endTime = isTimerRunning ? input : endTime
} …Run Code Online (Sandbox Code Playgroud)