ユーザーのデバイスがインターネットに接続されているかどうかを確認する関数を書いています。そうでない場合は、アラート ボックスでユーザーに警告します。
最初は、完全に機能する以下を使用していました。
var data = try NSURLConnection.sendSynchronousRequest(request, returningResponse: &response) as NSData?
しかし、これは iOS 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」は常に false です。私は何を間違っていますか?
前もって感謝します。