annotate GeoQuiz/Logic/User.swift @ 9:3540c7efc216

implement UserSettings
author Dennis C. M. <dennis@denniscm.com>
date Fri, 07 Oct 2022 18:50:38 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // User.swift
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 7/10/22.
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import Foundation
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 class User: ObservableObject {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 @Published var settings = UserSettingsModel() {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 didSet {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 if let userSettingsEncoded = try? JSONEncoder().encode(settings) {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 UserDefaults.standard.set(userSettingsEncoded, forKey: "UserSettings")
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 init() {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 if let userSettings = UserDefaults.standard.data(forKey: "UserSettings") {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 if let decodedUserSettings = try? JSONDecoder().decode(UserSettingsModel.self, from: userSettings) {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 settings = decodedUserSettings
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 }