我正在尝试保存用户的签入时间首选项(向他们发送通知提醒)。到目前为止,我已经能够将Bool和字符串保存到UserDefaults,但我不知道如何节省时间首选项。这是我用于存储首选项的UserSetting类。
public class UserSettings: Observableobject {
@Published var eveningCheckin: Bool {
didSet{
UserDefaults.standard.set(eveningCheckin, forKey: "eveningCheckin")
print("Evening checkin toggle value in didSET to (self.eveningCheckin)")
}
}
@Published var eveningCheckinTime: Date {
didSet{
UserDefaults.standard.set(eveningCheckinTime, forKey: "eveningCheckinTime")
print("Evening checkin didSet to (self.eveningCheckinTime)")
}
}
init() {
self.eveningCheckin = UserDefaults.standard.object(forKey: "eveningCheckin") as? Bool ?? false
self.eveningCheckinTime = UserDefaults.standard.object(forKey: "eveningCheckinTime") as? Date ?? Date(timeIntervalSince1970: 64800)
print("Evening checkin time init to (self.eveningCheckinTime)")// --> To debug
print("Evening checkin toggle value in init to (self.eveningCheckin)")
}
}
我想用SwiftUI提供的时间选择器设置这个晚上的签到时间,如下所示。以下是我的设置和计时器视图。
import SwiftUI
struct SettingsMain: View {
@ObservedObject var userSettings = UserSettings()
@State private var showTimepickerEvening = false
var body: some View {
NavigationView{
ScrollView {
VStack {
//Evening checkins
Button(action: {
//Show
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。