2016-11-01 5 views
1

아이폰과 ipad 용 xcode7 (2.3) (Swift)로 일부 응용 프로그램을 만들었지 만 모두 정상적으로 작동합니다. Reachability에 큰 문제가 하나 있는데, "인터넷에 연결되어 있지 않습니다."라는 메시지가 나타납니다. 셀룰러 데이터를 통해 인터넷에 연결되어 있지만 Wi-Fi로 작동하면 정상적으로 작동합니다.인터넷 연결 없음 심지어 연결된 아이폰 앱

Webview는 여전히로드되지만 "인터넷 연결을 찾을 수 없습니다"라는 오류가 있습니다. 사용자가 내 앱을 볼 수있는대로 닫습니다.

: 오류 ..

내 코드입니다 .. guyz 밖으로 좀 도와주세요 (애니메이션 : BOOL)를 viewDidAppear FUNC

재정 {

if Reachability.isConnectedToNetwork() == true { 

     print("Internet connection OK") 

    } else { 

     print("Internet connection FAILED") 

     let ViewController = UIAlertController(title: "Error!", message: "No Internet Connection Found", preferredStyle: .Alert) 



     let alertAction = UIAlertAction(title: "Dismiss", style: .Destructive) { (action) in 

      print("Dismiss button tapped!") 

     } 



     ViewController.addAction(alertAction) 

     presentViewController(ViewController, animated: true, completion: nil) 

    } 

} 

이 내 도달 가능성 파일입니다

수입 재단 수입에서 SystemConfiguration

공용 클래스 도달 가능성을 {

class func isConnectedToNetwork() -> Bool { 

    var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0)) 
    zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress)) 
    zeroAddress.sin_family = sa_family_t(AF_INET) 

    let defaultRouteReachability = withUnsafePointer(&zeroAddress) { 
     SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, UnsafePointer($0)) 
    } 

    var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0) 
    if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false { 
     return false 
    } 

    let isReachable = flags == .Reachable 
    let needsConnection = flags == .ConnectionRequired 

    return isReachable && !needsConnection 

} 

}

답변

0

시도해보기

class func isConnectedToNetwork() -> Bool { 

    var zeroAddress = sockaddr_in() 
    zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size) 
    zeroAddress.sin_family = sa_family_t(AF_INET) 

    guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, { 
     $0.withMemoryRebound(to: sockaddr.self, capacity: 1) { 
      SCNetworkReachabilityCreateWithAddress(nil, $0) 
     } 
    }) else { 
     return false 
    } 

    var flags: SCNetworkReachabilityFlags = [] 
    if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) { 
     return false 
    } 

    let isReachable = flags.contains(.reachable) 
    let needsConnection = flags.contains(.connectionRequired) 

    return (isReachable && !needsConnection) 
}