gpt4 book ai didi

swift - 完成处理程序

转载 作者:行者123 更新时间:2023-11-28 08:13:40 24 4
gpt4 key购买 nike

当我创建调用网络服务的方法时,我传递了一个 responseHandler。然后在这个方法的最后我有:responseHandler (false, nil, error, nil)

这是什么意思?我是在执行另一个传递 (false, nil, error, nil ) 的方法还是将其返回到相同的方法?当这个“responseHandler (false, nil, error, nil)”被执行时做了什么?

方法 =====================================

func sessionTaskPostRequest (_ urlRequest : URLRequest , responseHandler: @escaping  ResponseHandler) -> URLSessionTask {
let sesstionTask : URLSessionTask = networkSession.dataTask(with: urlRequest, completionHandler: { (data : Data? , urlResponse : URLResponse? , error : NSError? ) in

var json: NSDictionary!
do {
json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions()) as? NSDictionary
} catch {
print(error)
}

if(error != nil) {
responseHandler (false , nil , error , nil)
}

谢谢

最佳答案

这里的responseHandler是一段代码。

这是什么意思?

在大多数情况下,您使用代码块来处理异步事件的响应。因此,在您的情况下,您试图了解您对服务器的请求是否成功。

建议

我建议您在声明类型 ResponseHandler 的代码中搜索。我认为它可能是这样的:

typealias ResponseHandler = (p1: Type, p2: Type, p3: Type, p4: Type) -> Void

所以查看参数的真实名称你应该能够知道你传递给这个 block 的是什么。

另一件事,我认为你也应该在成功时调用这个 block 。否则,您只会在异步函数失败时报告。

关于swift - 完成处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43055944/

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