gpt4 book ai didi

ios - 如何检查 Alamofire 请求是否已完成

转载 作者:可可西里 更新时间:2023-11-01 00:37:36 29 4
gpt4 key购买 nike

我正在使用 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()
}

谢谢。

最佳答案

Alamofire 请求 的关闭部分在请求完成时被调用。我已经使用了您的代码并注释了请求已完成的行:

Alamofire.request(.GET, "API_URL", parameters: parameters).responseJSON() {
(_, _, JSON, error) in
//
// The request has finished here. Check if error != nil before doing anything else here.
//
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)
}
//
// After creating the user array we will call the completionHandler, which probably reports back to a ViewController instance
//
completionHandler(users, error)
}

关于ios - 如何检查 Alamofire 请求是否已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565517/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com