我正在使用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()
}
答案 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") ?? ""