Мне нужно «getUserInfo» для завершения, прежде чем выполнить следующий раздел кода (нажатие на раскадровку). В настоящее время «getUserInfo» все еще находится в процессе, когда выполняется нажатие на раскадровку. Как я могу выполнить их в порядке? Мне нужно сохранить эти 2 функции отдельно, поэтому размещение кода в обработчике завершения loginUser не является хорошим решением. Большое спасибо тем, кто умнее меня :)Выполнить быстрый код в порядке
func loginUser() {
PFUser.logInWithUsernameInBackground(txtEmailAddress.text, password:txtPassword.text) {
(user: PFUser?, error: NSError?) -> Void in
if user != nil {
// Successful login.
self.txtPassword.resignFirstResponder()
self.txtEmailAddress.resignFirstResponder()
getUserInfo()
// Push to Main.storyboard.
let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let viewController: AnyObject = storyboard.instantiateInitialViewController()
self.presentViewController(viewController as! UIViewController, animated: true, completion: nil)
} else {
// The login failed. Display alert.
self.displayAlert("Error", message: "Login incorrect")
}
}
}
func getUserInfo() {
let currentUser = PFUser.currentUser()
let userQuery = PFQuery(className: "_User")
userQuery.whereKey("username", equalTo: PFUser.currentUser()!.username!)
userQuery.findObjectsInBackgroundWithBlock({ (results:[AnyObject]?, error:NSError?) -> Void in
if error == nil {
for result in results! {
userType = result["userType"] as! String
if userType == "admin" {
user = "AdminSetting"
} else {
user = "StandardSetting"
}
}
}
})
}
Не выполнять в фоновом режиме. –
"поэтому размещение кода в обработчике завершения loginUser не является хорошим решением". Что это связано с тем, чтобы держать их в отдельных функциях. Храните их в отдельных функциях и вызывайте другую функцию в обработчике завершения. –