mam tych dwóch metod w mojej klasie API, aby uzyskać dane z API:Zrozumienie Swift Alamofire completionHandler
func authenticateUser(completionHandler: (responseObject: String?, error: NSError?) ->()) {
makeAuthenticateUserCall(completionHandler)
}
func makeAuthenticateUserCall(completionHandler: (responseObject: String?, error: NSError?) ->()) {
Alamofire.request(.GET, loginUrlString)
.authenticate(user: "a", password: "b")
.responseString { request, response, responseString, responseError in
completionHandler(responseObject: responseString as String!, error: responseError)
}
}
Następnie w innej klasy używam następujący kod dostępu do danych:
API().authenticateUser{ (responseObject, error) in
println(responseObject)
}
Kod działa, ale nie rozumiem go całkowicie.
- func authenticateUser ma completionHandler parametrów: (responseObject: String ?, błędzie: NSError?) ->(), jest to odniesienie do sposobu completionHandler? czy to jest obiekt? jaki jest cel ->()?
- Kiedy wywołuję funkcję authenticateUser, jak faktycznie uzyskać dostęp do odpowiedzi? W żadnym z moich funków api nie ma powrotu, funcname {(parametr, parametr) w ..} wydaje się naprawdę dziwna.
Twoja zmiana sprawia, że kwestia całkowicie niezrozumiałe. –