【发布时间】:2023-03-04 09:25:02
【问题描述】:
我有一部 iPhone 7,我也将它用于开发。我注意到在我的应用程序中,我将用于自动登录的会话令牌存储到 NSUserDefaults 中。但有时,如果不删除它,会话令牌为零,自动登录不起作用。这也发生在其他应用程序上,有时它会要求我再次登录,尽管我已经登录了。我猜想大多数应用程序使用的 NSUserDefaults 以某种方式被删除了。有人遇到类似问题吗?
class func setSessionToken(_ token: String){
let defaults = UserDefaults.standard
defaults.setValue(token, forKey: sessionTokenKey)
defaults.synchronize()
}
class func getSessionToken()->String?{
let defaults = UserDefaults.standard
return defaults.string(forKey: sessionTokenKey)
}
【问题讨论】:
-
您能否在
defaults.setValue(token, forKey: sessionTokenKey)行之前添加print()语句并为我打印出token?此外,您应该COMMAND+SHIFT+F并在搜索字段中粘贴“forKey: sessionTokenKey”,以确保您不会在项目中的其他任何地方删除该值。 -
请注意,从 iOS 8 开始,不再需要调用UserDefaults.synchronize()。“因为此方法会定期自动调用,请仅在无法等待自动同步时使用此方法(例如,如果您的应用程序即将退出)..."
标签: ios iphone swift nsuserdefaults