iOS 8的可达性总是在模拟器中返回false

问题描述:

我试图检测手机是否可以上网。我堆叠它,每次我使用库(https://github.com/ashleymills/Reachability.swift)或我use recomended class methods它只能在iOS 9.0上工作,但它只是返回false(至少在模拟器中,我不知道在真正的手机)。有任何想法吗?iOS 8的可达性总是在模拟器中返回false

enter image description here

有同样的问题。对于我的生活,我无法找出原因所在,所以不得不实施此解决方案的代码,无论对于iOS版9和iOS 8部作品:

class func isConnectedToNetwork()-> Bool { 

    var isConnected:Bool = false 
    let request = NSMutableURLRequest(URL: NSURL(string: "http://google.com/")!) 
    request.HTTPMethod = "HEAD" 
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData 
    request.timeoutInterval = 10.0 

    var response: NSURLResponse? 

    do { 
     try _ = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response) as NSData? 

     if let httpResponse = response as? NSHTTPURLResponse { 
      if httpResponse.statusCode == 200 { 
       isConnected = true 
      } 
     } 
    } 
    catch { 
     print(error) 
    } 


    return isConnected 
} 

显然,如果谷歌下降 - 所以不解决方法。但我冒这个险:)

基于回答:https://*.com/a/29050673/2941553