Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何执行不带';我没有/需要一个响应机构?_Swift_Nsurlrequest - Fatal编程技术网

Swift 如何执行不带';我没有/需要一个响应机构?

Swift 如何执行不带';我没有/需要一个响应机构?,swift,nsurlrequest,Swift,Nsurlrequest,主题说明了一切。我们想要创建一个URLRequest,其中我们关心的只是HTTP返回码(例如200、400等),我们可以从httpUrlResponse对象获得该返回码。我们不需要一个响应体,因为没有响应体 下面是您如何发出一个需要响应主体的请求 let urlRequest = [insert code to make request] let urlSession = [insert code to make session] let task = urlSession.dataTask(

主题说明了一切。我们想要创建一个
URLRequest
,其中我们关心的只是HTTP返回码(例如200、400等),我们可以从
httpUrlResponse
对象获得该返回码。我们不需要一个响应体,因为没有响应体

下面是您如何发出一个需要响应主体的请求

let urlRequest = [insert code to make request]
let urlSession = [insert code to make session]

let task = urlSession.dataTask(with: urlRequest) {

    (responseBodyData, httpUrlResponse, error) in

    if let error = error {
        // handle error
        return
    }

    guard let responseBodyData = responseBodyData else {
        // Handle missing data
        return
    }
}

task.resume()
但是,如果您不想要/不需要
responseBodyData
,该如何做呢?或者您只是使用相同的代码,忽略
responseBodyData
字段,将其替换为
,因为它是可选的,可以忽略?

您的评论:

我想知道的是这是不是正确的方法。换句话说,是否有其他没有该参数的东西——一个不同的闭包签名或其他东西

否。闭包签名是预定义的:它必须包含三个参数。名字不重要,但数字重要:

let task = urlSession.dataTask(with: urlRequest) {(body, response, err) in
如果要忽略第一个参数,请忽略它(即不要在大括号中再次引用它)。如果愿意,您可以用下划线来表示您不关心第一个参数:

let task = urlSession.dataTask(with: urlRequest) {(_, response, err) in

但是没有要求你这样做;编译器不在乎任何方式。

是的,忽略它。试试看@马特,这不是一个关于“试试看”的问题。我知道这是可行的。我想知道的是这是不是正确的方法。换句话说,是否有其他没有该参数的东西——一个不同的闭包签名或其他东西。但是如果没有,正确的行为就是忽略它,那也很好。好吧,这是可以回答的,所以我已经回答了。这正是我最终要做的。