如何判断回复.Swift中SendSynchronousRequest中的状态代码

let urlPath: String = "URL_IS_HERE"
var url: NSURL = NSURL(string: urlPath)
var request: NSURLRequest = NSURLRequest(URL: url)
var response: AutoreleasingUnsafeMutablePointer<NSURLResponse?> = nil

var error: NSErrorPointer? = nil
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error: nil) as NSData?

在objective-c 之前和objective-c 中,我们使用以下代码判断response.statusCode: (长)响应.statusCode 但是在SWIFT中,我不知道如何判断响应状态代码

推荐答案

您将引用传递给response,这样它就会被填充,然后判断结果并将其转换为HTTPResponse,因为只有http响应声明status code属性.

let urlPath: String = "http://www.google.de"
var url: NSURL = NSURL(string: urlPath)
var request: NSURLRequest = NSURLRequest(URL: url)
var response: NSURLResponse?

var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil) as NSData?

if let httpResponse = response as? NSHTTPURLResponse {
    println("error \(httpResponse.statusCode)")
}

note: in objC you would also use the same approach but if you use squared brackets, the compiler doesn't enforce the cast. Swift (being type safe) does enforce the cast always

Ios相关问答推荐

使用NavigationStack和.searchable时如何显示大型导航标题?

缺少预期的键:';NSPrival yCollectedDataTypes';

实例方法wait在异步上下文中不可用;请改用TaskGroup;这是Swift 6中的错误''

在iOS中禁用URLSession自动重试机制

SWIFT用户界面检测手势的开始和结束

如何使用参与者允许并行读取,但阻止对SWIFT中资源的并发读取和写入?

如何在 Swift 中存储具有关联值的协议?

CarPlay:现在播放alert 可能吗?

为什么常量属性可能在 Swift 类中被初始化两次?

NSOperation 有延迟 - 它是异步的还是同步的?

添加到单个自定义视图时,Swiftui 项目会在所有视图中重复

Swift 5.7 - 使存在的任何协议符合 Hashable

如何将单个按钮传递到自定义 ConfirmationDialog

带有属性包装器的不可用属性

无法初始化 FirebaseApp - Flutter

如何 comments .plist 文件中的行?

获取 iOS 上所有联系人的列表

在 iPhone 中将 UIViewController 显示为弹出窗口

SwiftUI NavigationView navigationBarTitle LayoutConstraints 问题

由于 GoogleSignIn、AdMob 提交应用程序时 iOS 10 GM 发布错误应用程序try 在没有使用说明的情况下访问隐私敏感数据