Общая переменная в Swift - PullRequest
0 голосов
/ 16 января 2019

Я работаю над приложением для iOS.Я хочу сохранить имя пользователя и идентификатор подключенного пользователя, чтобы использовать их в других функциях, но я не знаю как.Я пытался создать статические переменные и использовать их.

Это мой код:

Мой вызов 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 голосов
/ 16 января 2019

Представить следующий вид контроллера после «Получить пользователя». Как вы назначаете данные в Get User.

  • Попробуйте использовать настройки пользователя по умолчанию для сохранения информации о пользователе.

    • Для сохранения

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") ?? ""

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...