Swift中的共享变量

时间:2019-01-16 15:23:50

标签: swift

我正在使用iOS应用。我想存储用户名和已连接用户的ID,以在其他功能中使用它们,但我不知道如何。 我试图制作一个静态变量并使用它们。

这是我的代码:

我的API调用:

class func getID()-> String {
    return LoginViewController.id
}

class func getusername()-> String {
    return LoginViewController.username
}

LoginViewController:

class LoginViewController: UIViewController {
    @IBOutlet weak var textUsername: UITextField!
    @IBOutlet weak var textPassword: UITextField!
    static var username = ""
    static var id = ""
    var myUser = [User]()

    //TODO Connect with facebook

    @IBAction func LoginBtn(_ sender: Any) {
        //TODO
        //Controle de Saisie
        API.login(username: textUsername.text!, password: textPassword.text!) { success in
            if success{
                let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
                let nextViewController = storyBoard.instantiateViewController(withIdentifier: "MainPage") as! MainPageViewController
                nextViewController.currentUser = self.textUsername.text!
                self.present(nextViewController, animated:true, completion:nil)
                API.getUser(username: self.textUsername.text!) { (error :Error?, myUser :[User]?) in
                    if let myUser = myUser {
                        self.myUser = myUser
                        self.reloadInputViews()

                        print("hey")
                        print(myUser[0].username)
                        LoginViewController.username = myUser[0].username
                        LoginViewController.id = String(myUser[0].id)
                    //  API.create(id: String(myUser[0].id), money: String(myUser[0].money), username: String(myUser[0].username))

                      //  print(String(myUser[0].id))
                         // API.create()

                    }
                }
            } else {
                print("no")
            }
        }

当我试图像这样使用它们时,我没有任何结果:

API.getTransaction(username: API.getID(),type : "target") { (error :Error?, transactions : [Transaction]?) in
    if let transactions = transactions {
        self.transactions = transactions
        self.tableView.reloadData()
    }

1 个答案:

答案 0 :(得分:0)

在“获取用户”之后显示下一个视图控制器。在“获取用户”中分配数据时。

  • 尝试使用用户默认值保存用户信息。

    • 保存

let defaults = UserDefaults.standard defaults.set("My.User", forKey: "User_ID") defaults.set("My.Name", forKey: "User_Name")

  • 要领取

let user_id = defaults.string(forKey: "User_ID") ?? ""