gpt4 book ai didi

ios - AlamoFire 无线程警告

转载 作者:行者123 更新时间:2023-11-28 15:08:00 25 4
gpt4 key购买 nike

在使用 AlamoFire 发出请求并访问完成 block 上的 UI 元素时,我没有收到任何警告,但是,如果我尝试在没有 AlamoFire 的情况下做同样的事情,我会得到“UILabel.text 必须仅从主线程使用",我想知道这里发生了什么?

AlamoFire 示例

    makeRequest(parameters:parameters,URL:.request){
validatedResponse in
label.text = "anything"
}
private func makeRequest(parameters:[String:Any]?,URL:URLs,requestType:requestType,method:HTTPMethod , completion: @escaping (_ response:APIResponse) -> ())
{
APIinterface.afManager.request(
baseUrl + URL.rawValue,
method: method,
parameters: parameters
)
.validate()
.validate(contentType: ["application/json"])

.responseJSON
{
response in
debugPrint(response)

guard let validatedResponse = self.validateResponseForAPI(response: response) else { return }
//let validatedResponse = (requestType == .api) ?
// : self.validateExternalResponse(response: response)

completion(validatedResponse)

}
}

native 示例

 makeRequest(parameters:parameters,URL:.request){
validatedResponse in
label.text = "anything"
}

private func makeRequest(parameters:[String:Any]?,url:URLs,requestType:requestType,method:HTTPMethod , completion: @escaping (_ response:ResponseObject?) -> ())
{
guard let url = URL(string:baseUrl + url.rawValue) else
{
print("Error: cannot create URL")
return
}
let urlRequest = URLRequest(url: url)

// set up the session
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)

// make the request
let task = session.dataTask(with: urlRequest, completionHandler:
{
(data, response, error) in
// do stuff with response, data & error here
print(response)
print(error)
completion(self.validateResponseForAPISwift4(response: data))
})
task.resume()
}

最佳答案

除非您另外指定,否则 Alamofire 回调始终在主线程上执行。这就是您在使用 Alamofire 时没有收到警告的原因。

关于ios - AlamoFire 无线程警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48158992/

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