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
但是没有要求你这样做;编译器不在乎任何方式。是的,忽略它。试试看@马特,这不是一个关于“试试看”的问题。我知道这是可行的。我想知道的是这是不是正确的方法。换句话说,是否有其他没有该参数的东西——一个不同的闭包签名或其他东西。但是如果没有,正确的行为就是忽略它,那也很好。好吧,这是可以回答的,所以我已经回答了。这正是我最终要做的。