大家好!
请告诉我如何等待来自服务器的响应并填写用户列表“users”,以便“getFriends()”方法返回完成的列表。现在它不再等待并返回一个空列表。
这是我的请求类和方法:
import Foundation
import Alamofire
import SwiftyJSON
class WebRequest {
static let url = "https://api.vk.com/method/"
static func getFriends() -> [User] {
var users = [User]()
let fullURL = url + "friends.get"
let parameters: Parameters = [
"fields": "id,first_name,last_name,photo_200_orig",
"v": "5.120",
"access_token": Session.instance.accessToken!
]
AF.request(fullURL, method: .get, parameters: parameters, headers: nil)
.responseJSON {(response) in
let json = JSON(response.value!).dictionaryValue["response"]?.dictionaryValue["items"]
users = JSON(json).map { User(json: $0.1)}
}
return users
}
}
这是调用它的 TableViewController 类方法,因此不呈现任何内容(列表为空):
override func viewDidLoad() {
super.viewDidLoad()
self.friends = WebRequest.getFriends()
}
最简单的方法是使方法
getFriends
异步然后我们像这样使用它