Я пишу функцию, которая проверяет, подключено ли устройство пользователя к Интернету. Если он не предупреждает пользователей с полем «Предупреждение».Проверьте, доступно ли подключение к Интернету
Первоначально я использовал следующие ниже которой работал отлично:
var data = try NSURLConnection.sendSynchronousRequest(request, returningResponse: &response) as NSData?
Но это было устаревшим прошивкой 9.
Так что я изменил код к следующему.
import Foundation
import SystemConfiguration
public class Reachability {
class func isConnectedToNetwork()->Bool{
var Status:Bool = false
let url = NSURL(string: "https://google.com/")
var response: NSURLResponse?
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "HEAD"
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData
request.timeoutInterval = 10.0
let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, err -> Void in
if let httpResponse = response as? NSHTTPURLResponse {
if httpResponse.statusCode == 200 {
Status = true
}
}
})
task.resume()
return Status
}}
Вопрос заключается в том, что он всегда говорит, что нет никакой связи Интернет, который, очевидно, неправильно. Это означает, что «Bool» всегда ложный. Что я делаю не так?
Заранее спасибо.
См. следующий ответ. http://stackoverflow.com/a/30743763/1180206 – Imran
@ Paulw11 Благодарим за внимание. Любые предложения по устранению этого? – Skywalker