主题说明了一切。我们要创建一个URLRequest
,我们所关心的就是可以从httpUrlResponse
对象获得的HTTP返回码(例如200、400等)。我们不需要响应主体,因为没有响应主体。
这是您发出要求响应主体的请求的方式...
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
字段,而将其替换为_
,因为它是可选的并且可以忽略?
答案 0 :(得分:0)
根据您的评论:
我想知道的是这是否正确。换句话说,还有其他没有该参数的东西吗?是其他的闭包签名还是其他东西。
不。闭包签名是预定义的:必须带有三个参数。名称无关紧要,但数字无关紧要
let task = urlSession.dataTask(with: urlRequest) {(body, response, err) in
如果您想忽略第一个参数,请忽略它(即不要在花括号中再次引用它)。您可以根据需要替换下划线,以向自己发出信号,表示您不在乎第一个参数:
let task = urlSession.dataTask(with: urlRequest) {(_, response, err) in
但是不要求您这样做;编译器不在乎一种方法。