Swift-使用POST-to-PHP登录
我正在试图弄明白为什么这段代码需要这么长时间才能登录。它现在可以工作了,但速度真的很慢。我的控制台显示它正在立即接收成功响应,但它仍有一段时间没有转到下一个视图控制器。我还发现,在添加代码以关闭加载指示器后,它也会立即关闭。所以现在,如果我提供了正确的凭证,它将关闭加载指示器,但在转到下一个视图控制器之前仍将等待15秒。想法Swift-使用POST-to-PHP登录,php,swift,post,login,Php,Swift,Post,Login,我正在试图弄明白为什么这段代码需要这么长时间才能登录。它现在可以工作了,但速度真的很慢。我的控制台显示它正在立即接收成功响应,但它仍有一段时间没有转到下一个视图控制器。我还发现,在添加代码以关闭加载指示器后,它也会立即关闭。所以现在,如果我提供了正确的凭证,它将关闭加载指示器,但在转到下一个视图控制器之前仍将等待15秒。想法 let request = NSMutableURLRequest(URL: NSURL(string: "myurl")!) reques
let request = NSMutableURLRequest(URL: NSURL(string: "myurl")!)
request.HTTPMethod = "POST"
var postString = "user=\(username.text)&pass=\(password.text)"
var success = 0
var alert = UIAlertView(title: "Logging In", message: "Please wait...", delegate: self, cancelButtonTitle: "Cancel");
var loadingIndicator = UIActivityIndicatorView(frame: CGRectMake(50, 10, 37, 37)) as UIActivityIndicatorView
loadingIndicator.center = self.view.center;
loadingIndicator.hidesWhenStopped = true
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
loadingIndicator.startAnimating();
alert.setValue(loadingIndicator, forKey: "accessoryView")
loadingIndicator.startAnimating()
alert.show();
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
let alert = UIAlertView()
alert.title = "Login Failed!"
alert.message = "Error: \(error)"
alert.delegate = self
alert.addButtonWithTitle("OK")
alert.show()
return
}
println("response = \(response)")
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
println("responseString = \(responseString)")
let jsonData = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers , error: nil) as! NSDictionary
success = jsonData["Success"] as! Int
if(success == 1){
alert.dismissWithClickedButtonIndex(0, animated: true)
self.login()
}
else{
let alert = UIAlertView()
alert.title = "Login Failed"
alert.message = "Invalid username/password"
alert.delegate = self
alert.addButtonWithTitle("Retry")
alert.show()
}
}
task.resume()
在下一个视图控制器中是否有什么东西挡住了它?查看加载下一个视图控制器所花的时间有多长。不,没有。它是客户端页面,在ViewLoad上不加载任何内容。