【问题标题】: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("")

【问题讨论】:

标签: swift userdefaults


【解决方案1】:

正如 Kamal 所说,我们可以使用 firebase.google.com/docs/auth 在 swift 应用中创建 OTP。

【讨论】:

    猜你喜欢
    • 2016-03-07
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 2019-05-23
    • 2014-10-29
    相关资源
    最近更新 更多