将 Alamofire 请求转换为同步?
Convert Alamofire request to synchronous?
如何将当前的 Alamofire 请求转换为同步请求?这会停止所有其他执行直到请求完成吗?
我当前的功能如下:
func updateLabels() {
Alamofire.request(apiUrl).responseJSON { response in
if let data = response.result.value {
var rawJson = JSON(data)
var json = rawJson[0]
var totalViews = json["totalViews"].stringValue
var uniqueUsers = json["uniqueUsers"].stringValue
print(totalViews)
print(uniqueUsers)
self.totalViews.setText(totalViews)
self.uniqueUsers.setText(uniqueUsers)
}
}
}
我正在使用 Alamofire_Synchronous
。我对 Alamofire 不是很熟悉,所以任何帮助都会很棒,谢谢!
您可以使用此扩展并将同步请求调用到 Alamofire
库。
extension Alamofire.Manager {
func syncRequest(URLRequest: URLRequestConvertible) -> Response<AnyObject, NSError> {
var outResponse: Response<AnyObject, NSError>!
let semaphore: dispatch_semaphore_t! = dispatch_semaphore_create(0)
self.request(URLRequest).responseJSON { (response: Response<AnyObject, NSError>) -> Void in
outResponse = response
dispatch_semaphore_signal(semaphore)
}
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
return outResponse
}
}
如何将当前的 Alamofire 请求转换为同步请求?这会停止所有其他执行直到请求完成吗?
我当前的功能如下:
func updateLabels() {
Alamofire.request(apiUrl).responseJSON { response in
if let data = response.result.value {
var rawJson = JSON(data)
var json = rawJson[0]
var totalViews = json["totalViews"].stringValue
var uniqueUsers = json["uniqueUsers"].stringValue
print(totalViews)
print(uniqueUsers)
self.totalViews.setText(totalViews)
self.uniqueUsers.setText(uniqueUsers)
}
}
}
我正在使用 Alamofire_Synchronous
。我对 Alamofire 不是很熟悉,所以任何帮助都会很棒,谢谢!
您可以使用此扩展并将同步请求调用到 Alamofire
库。
extension Alamofire.Manager {
func syncRequest(URLRequest: URLRequestConvertible) -> Response<AnyObject, NSError> {
var outResponse: Response<AnyObject, NSError>!
let semaphore: dispatch_semaphore_t! = dispatch_semaphore_create(0)
self.request(URLRequest).responseJSON { (response: Response<AnyObject, NSError>) -> Void in
outResponse = response
dispatch_semaphore_signal(semaphore)
}
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
return outResponse
}
}