【发布时间】:2015-08-14 10:35:45
【问题描述】:
我正在使用 Swift 开发一个 iPad 应用程序。对于 http 请求,我使用 Alamofire 库。到目前为止,我已经设法从 API 中提取了一些数据。但问题是因为它是一个异步调用,我不知道如何检查请求是否完成。任何帮助,将不胜感激。
这是我目前实现的代码
客户端类
func getUsers(completionHandler: ([User]?, NSError?) -> ()) -> (){
var users: [User] = []
let parameters = [
"ID": "123",
"apikey": "1234",
]
Alamofire.request(.GET, "API_URL", parameters: parameters).responseJSON() {
(_, _, JSON, error) in
let items = (JSON!.valueForKey("Users") as! [NSDictionary])
for item in items {
var user: User = User()
user.userId = item.valueForKey("ID")! as? String
user.userName = item.valueForKey("Name")! as? String
user.group = item.valueForKey("Group")! as? String
users.append(user)
}
completionHandler(users, error)
}
}
主类
func getUsers(){
FacilityClient().getUsers() { (users, error) -> Void in
if users != nil {
self.users = users!
} else{
println("error - \(error)")
}
}
tableUsers.reloadData()
}
谢谢。
【问题讨论】: