2016-07-15 5 views
0

AFN을 사용하여 네트워크를 확인하고 있습니다.AFNetworking 네트워크 확인 가능

__block BOOL connect; 

    AFNetworkReachabilityManager*manager = [AFNetworkReachabilityManager sharedManager]; 
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { 
    switch (status) { 
     case -1: 
      connect=YES; 
      break; 
     case 0: 
      connect=NO; 
      break; 
     case 1: 
      connect=YES; 
      break; 
     case 2: 
      connect=YES; 
      break; 
     default: 
      break; 
    } 
}]; 


[manager startMonitoring]; 

와 나는 BOOL 다른 파일

if (![ValueUtils isConnectNet]) 

에 연결하고 싶지만 즉시 부울을하지 않았다 내가 어떻게 먼저 부울을 얻을 후 "다른 경우"일을 할 수 ? 유 startMonitoring 후 AFN의의 isReachable 권리를 사용하는 경우


지금 내가, 도달 가능성을 사용, 그것은 바로 현재의 네트워크 상태를 얻을 수 없습니다.

+0

이 하나가 될 수있다 참조하면 도움이 http://stackoverflow.com/questions/22980222/how -to-check-여부 -host-server-is-available-in-ios-with-afnetworking –

+0

Reachability 클래스를 사용하여 그들은 완벽하게 작동합니다. – gurmandeep

+0

이제는 reachability를 사용합니다. startMonitoring 바로 뒤에 AFN의 isReachable을 사용하면됩니다. 현재 네트워크 상태를 즉시 가져올 수 없습니다. – Vergil

답변

3

당신은 이것에 의해 도달 가능성을 확인할 수 있습니다

AFNetworkReachabilityManager *reachability = [AFNetworkReachabilityManager sharedManager]; 
    [reachability setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { 
     switch (status) { 
      case AFNetworkReachabilityStatusReachableViaWWAN: 
       NSLog(@"WWN"); 
       break; 
      case AFNetworkReachabilityStatusReachableViaWiFi: 
       NSLog(@"WiFi"); 
       break; 
      case AFNetworkReachabilityStatusUnknown: 
       NSLog(@"Unknown"); 
       break; 
       case AFNetworkReachabilityStatusNotReachable: 
       NSLog(@"Not Reachable"); 
       break; 
      default: 
       break; 
     } 
    }]; 

또는 사용할 수 있습니다

+(BOOL)IsInternet 
{ 
    Reachability *networkReachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus networkStatus = [networkReachability currentReachabilityStatus]; 
    if (networkStatus == NotReachable) 
    { 
     return NO; 
    } 
    else 
    { 
     return YES; 
    } 
} 
+0

첫 번째 것은 AFN이고 두 번째는 도달 가능성입니다. – Vergil

3

당신은 다음과 같이 확인 할 필요가 없습니다 :

if ([[AFNetworkReachabilityManager sharedManager] isReachable]) 
{ 
    NSLog(@"IS REACHABILE"); 
} 
else 
{ 
    NSLog(@"NOT REACHABLE"); 
} 

이를 위해 부울을 할 필요가 있습니다. AFNetworkReachabilityManager는 네트워크에 도달 할 수 있는지 여부를 알려줍니다.

+0

이 답변이 도움이된다면, 동의하십시오. 이것이 우리의 동기입니다. –

+2

항상 접근 할 수없는 것으로 표시됩니다. http://stackoverflow.com/questions/23116201/afnetworkreachabilitymanager-says-no-network – OtakuFitness