Tom*_*mer 1 xcode nsurlconnection nsurlrequest reachability swift2
我使用下面的代码检查互联网连接.它工作正常,但在Swift 2.0更新后,我现在看到一行var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil) as NSData?错误,在调用中说出额外的参数'error'.
class func isConnectedToNetwork()->Bool{
var Status:Bool = false
let url = NSURL(string: "http://google.com/")
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "HEAD"
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData
request.timeoutInterval = 10.0
var response: NSURLResponse?
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: nil) as NSData?
if let httpResponse = response as? NSHTTPURLResponse {
if httpResponse.statusCode == 200 {
Status = true
}
}
return Status
}
Run Code Online (Sandbox Code Playgroud)
你有什么想法我应该改变它吗?谢谢
如果你看一下苹果文档(https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/#//apple_ref/occ/clm/NSURLConnection/sendSynchronousRequest:returningResponse:error : )你会看到定义改为:
class func sendSynchronousRequest(_ request: NSURLRequest,
returningResponse response: AutoreleasingUnsafeMutablePointer<NSURLResponse?>) throws -> NSData
Run Code Online (Sandbox Code Playgroud)
ErrorType如果请求失败,他们已经删除了错误参数,并且该方法现在抛出了.所以这应该工作:
do {
let data = try NSURLConnection.sendSynchronousRequest(request, returningResponse: &response)
} catch (let e) {
print(e)
}
Run Code Online (Sandbox Code Playgroud)
但是你不应该使用这种方法:NSURLSession从iOS 9和OS X 10.11开始,它不赞成使用.
| 归档时间: |
|
| 查看次数: |
10257 次 |
| 最近记录: |