iOS 8的可达性总是在模拟器中返回false
问题描述:
我试图检测手机是否可以上网。我堆叠它,每次我使用库(https://github.com/ashleymills/Reachability.swift)或我use recomended class methods它只能在iOS 9.0上工作,但它只是返回false(至少在模拟器中,我不知道在真正的手机)。有任何想法吗?iOS 8的可达性总是在模拟器中返回false
答
有同样的问题。对于我的生活,我无法找出原因所在,所以不得不实施此解决方案的代码,无论对于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
}
显然,如果谷歌下降 - 所以不解决方法。但我冒这个险:)