在控制器中设置的用户默认值无法在控制器中读取
Posted
技术标签:
【中文标题】在控制器中设置的用户默认值无法在控制器中读取【英文标题】:Userdefaults set in controllerA cannot to read in ControllerB 【发布时间】:2019-10-14 09:49:58 【问题描述】:我在signInController 中设置用户信息。如果缺少任何必填字段或需要更新数据,则 signupController 需要填充相同的信息,但从 signupcontroller 中检索时用户默认为 nil。
SignInController:设置用户默认值
private var user: UserDefaults?self.user?.set((result as? [AnyHashable : Any])?["name"], forKey: "username")
self.user?.set((result as? [AnyHashable : Any])?["id"], forKey: "userid")
self.user?.set((result as? [AnyHashable : Any])?["email"], forKey: "useremail")
self.user?.set((((result as? [AnyHashable : Any])?["picture"] as? [AnyHashable : Any])?["data"] as? [AnyHashable : Any])?["url"], forKey: "userpic")
self.user?.synchronize()
在注册控制器中
private var user: UserDefaults?
func populateData ()
print("UserDefaults.standard.dictionaryRepresentation().values)=======>",user?.dictionaryRepresentation().keys)
print("Facebook handler===", user?.object(forKey: "name"))
textName.text = (user?.object(forKey: "name") ?? "") as! String
textEmail.text = (user?.object(forKey: "mail") ?? "") as! String
userPhone.text = (user?.object(forKey: "phone") ?? "") as! String
print("The data is Name : ",textName.text)
print("The data is Email : ",textEmail.text)
print("The data is Phone : ",userPhone.text)
这是 print 语句的输出。
UserDefaults.standard.dictionaryRepresentation().values)=======> nil
Facebook handler=== nil
The data is Name : Optional("")
The data is Email : Optional("")
The data is Phone : Optional("")
【问题讨论】:
使用 Firebase 身份验证firebase.google.com/docs/auth 【参考方案1】:正如 Kamal 所说,我们可以使用 firebase.google.com/docs/auth 在 swift 应用中创建 OTP。
【讨论】:
以上是关于在控制器中设置的用户默认值无法在控制器中读取的主要内容,如果未能解决你的问题,请参考以下文章