完成处理程序

时间:2017-03-27 20:32:34

标签: swift swift3

当我创建调用webservice的方法时,我传递了一个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)
    }

THX

1 个答案:

答案 0 :(得分:0)

responseHandler这里是一段代码。

这是什么意思?

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

<强>建议

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

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

所以看看params的真实姓名,你应该能够知道你传给这个街区的是什么。

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