它應該是什麼 我有一個用戶名字段。當輸入用戶名並單擊sendButton時,會將用戶數據作爲JSON文件提取一個asynchronousRequest。 單擊sendButton之後,我想要顯示一個ActivityIndicator。 UI在提出請求的同時仍應具有響應性。正確的異步認證,同時保持響應式UI
現在是怎麼樣的 我點擊sendButton並且UI凍結。即使是ActivityIndicator也不會顯示。
代碼
LoginVC:
func buttonTouchedUpInside(sender: UIButton) {
toggleActivityIndicatorVisibilityOn(true)
LoginManager.sharedInstance.checkUserForCredentials(username: textFieldLogin.text, password: "")
toggleActivityIndicatorVisibilityOn(false)
}
func loginManagerDidFinishAuthenticationForUser(userData: [String:String]?){
// Delegate Method, which works with the fetched userData.
}
LoginManager
func checkUserForCredentials(#username: String ,password: String) -> Void {
let url = NSURL(string: "\(Config.checkCredentialsUrl)username=\(username)")
let request = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(request, queue: .mainQueue()) { (response, data, error) -> Void in
if error != nil {
//Display error-message
}
var error : NSError?
let json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: &error) as? [String:String]
self.delegate?.loginManagerDidFinishAuthenticationForUser(json)
}
}
簡而言之:我想在背景被提出的要求,即Activityindicator是顯示和UI保持響應即在異步請求成功獲取json之後,代理方法將被稱爲