我试图找出我的用户是否有可以在他的设备中实际运行的互联网连接。根据这篇文章:Check for internet connection with Swift我可以检查我的用户是否已连接到网络,但是,如果他已连接,但他的wifi无法正常工作,那么代码仍然会将其视为已连接且程序崩溃。关于如何知道他们的互联网是否真的有用的任何想法?
public class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
}
var flags = SCNetworkReachabilityFlags()
if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
return false
}
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable && !needsConnection)
}
if Reachability.isConnectedToNetwork() {
//I NEED TO KNOW INTERNET IS WORKING BEFORE I RUN THIS STATEMENTS
if let nextImage = defaults.objectForKey("next\(pID)Image") {
thumbIV.image = UIImage(data: NSData(contentsOfURL: NSURL(string: nextImage as! String)!)!)
nextVid.text = Parser().getT(defaults.objectForKey("next\(pID)Title") as! String)
}
提前致谢!