我有这段代码
@IBAction func joinButtonTouch(sender: AnyObject) {
NSOperationQueue.mainQueue().addOperationWithBlock({
self.joinButton.backgroundColor = UIColor(red: 0/255, green: 122/255, blue: 255/255, alpha: 1.0)
self.activityIndicator.startAnimating()
self.resultLogIn.text = "Checking data..."
})
var response = NetworkManager.sharedInstance.SendRequest("<Command=LogIn><Login=\(loginTextField.text!)><Password=\(passwordTextField.text!)>")
}
我希望activityIndicator
运行 BEFORE 启动SendRequest
方法。但这没效果。为什么? activityIndicator
完成时SendRequest
正在运行。
答案 0 :(得分:0)
您正在使用SendRequest
屏蔽主线索。您还安排了操作以启动指示器,但它在当前正在发生的事情之后排在队列中,因此在您释放主线程之后它才会运行。
因此,不要将指示符更改放入操作中,将SendRequest
置于操作中并在不是主要的队列(即后台线程)上执行它。然后一切都会顺利进行,用户会很高兴。