获取并设置与UserDefaults不保存字符串

问题描述:

我试图在NSUserDefault本地存储userId,但是当我尝试设置它并尝试打印它不返回,怎么会是这样?获取并设置与UserDefaults不保存字符串

我首先初始化UserDefaults

fileprivate static let userDefaults = UserDefaults() 

然后我设置用户标识字符串

public static var userId: String { 
    get { 
     return userDefaults.string(forKey: "userId") ?? "" 
    } 
    set { 
     userDefaults.set(userId, forKey: "userId") 
    } 
} 

然后我将它设置并打印

Globals.userId = "5876ad241aa7e973b1f8ec5b" 
    print(Globals.userId) 
+2

尝试改变'userDefaults = UserDefaults.standard' –

在二传手,newValue变量不断重新分配值。所以,你应该实现象下面这样:

set { 
     userDefaults.set(newValue, forKey: "userId") 
} 
+0

这是一个brainfart一个地狱!谢谢 –