我想創建一個AppSettings類來將用戶設置存儲在用戶字典中。我的AppSettings類:Swift Singleton類來存儲用戶設置
class AppSettings : NSObject
{
static var user: [String: Any]?
static let sharedSingleton : AppSettings = {
let instance = AppSettings()
return instance
}()
var userID: String?
var baseUrl: String?
override private init() {
super.init()
let userDefaults = UserDefaults.standard
AppSettings.user = userDefaults.object(forKey: "user") as! [String : Any]?
print(AppSettings.user ?? "User Defaults has no values")
self.saveSettings()
}
func saveSettings()
{
let userDefaults = UserDefaults.standard
if((AppSettings.user) != nil)
{
userDefaults.set(AppSettings.user, forKey: "user")
}
userDefaults.synchronize()
}
}
我這種方式存儲用戶的值:
AppSettings.user?["User_ID"] = String(describing: dictionary["User_ID"])
AppSettings.sharedSingleton.saveSettings()
let defaults = UserDefaults.standard.object(forKey: "user")
print(defaults ?? "User is null")
這表明,用戶爲空。怎麼了?
當您打印它時,您的AppSettings.user是否有內容,或者您得到「用戶默認值沒有值」? –
我得到「用戶默認值沒有值」。我無法添加值 –
您從未爲關鍵「用戶」設置任何數據。您嘗試獲取對象,但是您從不設置它,因此它將返回零。當你試圖保存它時,你會檢查零,這總是零,所以你永遠不會保存它。所以你至少需要在某處初始化一個「用戶」對象。 –