annotate GeoQuiz/Logic/UserClass.swift @ 15:f1967f8cc67b

first iteration of core data
author Dennis C. M. <dennis@denniscm.com>
date Wed, 19 Oct 2022 10:04:17 +0200
parents 136928bae534
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 //
10
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 9
diff changeset
2 // UserClass.swift
9
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 {
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
11 @Published var data = UserData() {
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 didSet {
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
13 if let userDataEncoded = try? JSONEncoder().encode(data) {
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
14 UserDefaults.standard.set(userDataEncoded, forKey: "UserData")
9
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 }
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
18
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 init() {
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
20 if let userData = UserDefaults.standard.data(forKey: "UserData") {
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
21 if let decodedUserData = try? JSONDecoder().decode(UserData.self, from: userData) {
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
22 data = decodedUserData
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 }
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 }