杨锴
2024-11-19 d7213a2599c0abcef0dc94db37c45da5dee497f2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//
//  UserViewModel.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/9/5.
//
 
import Foundation
import UserDefaultsStore
 
class UserDefaultSettingViewModel{
                private static let settingInfo = UserDefaultsStore<UserDefaultSettingModel>(uniqueIdentifier: "settingModel")!
 
                static func saveSetting(_ model:UserDefaultSettingModel){
                                do{
                                                try settingInfo.save(model)
                                }catch{
 
                                }
                }
 
                static func getSetting()->UserDefaultSettingModel?{
                                var model:UserDefaultSettingModel?
                                if settingInfo.allObjects().first == nil{
                                                model = UserDefaultSettingModel()
                                                saveSetting(model!)
                                }else{
                                                model = settingInfo.allObjects().first
                                }
                                return model
                }
 
                static func clearSetting(){
                                settingInfo.deleteAll()
                }
}
 
class UserViewModel{
    private static let userLoginInfo = UserDefaultsStore<LoginUserInfoModel>(uniqueIdentifier: "userLoginInfo")!
    private static let userAvatarInfo = UserDefaultsStore<UserInfoModel>(uniqueIdentifier: "userAvatarInfo")!
 
    //用户UUID
    static var DeviceUUID:String{
        if let uuid = UserDefaults.standard.value(forKey: "device_UUID") as? String{
            return uuid
        }else{
            let uuid = UUID().uuidString
            UserDefaults.standard.set(uuid, forKey: "device_UUID")
            UserDefaults.standard.synchronize()
            return uuid
        }
    }
 
                static func getToken()->String?{
                                return UserDefaults.standard.object(forKey: "_userToken") as? String
                }
                static func saveToken(_ token:String){
                                UserDefaults.standard.set(token, forKey: "_userToken")
                                UserDefaults.standard.synchronize()
                }
 
                static func clearToken(){
                                UserDefaults.standard.set(nil, forKey: "_userToken")
                                UserDefaults.standard.synchronize()
                }
 
                static func saveLoginInfo(_ model:LoginUserInfoModel){
                                do{
                                                try UserViewModel.userLoginInfo.save(model)
                                }catch{
 
                                }
                }
 
                static func getLoginInfo()->LoginUserInfoModel?{
                                return UserViewModel.userLoginInfo.allObjects().first
                }
 
                static func clearLoginInfo(){
                                UserViewModel.userLoginInfo.deleteAll()
                }
 
 
                static func saveAvatarInfo(_ model:UserInfoModel){
                                do{
                                                try UserViewModel.userAvatarInfo.save(model)
                                }catch{
 
                                }
                }
 
                static func getAvatarInfo()->UserInfoModel{
                                let userModel = UserViewModel.userAvatarInfo.allObjects().first
                                return userModel == nil ? UserInfoModel():userModel!
                }
 
                static func clearAvatarInfo(){
                                UserViewModel.userAvatarInfo.deleteAll()
                }
}