2014-11-13 2 views
0

AFNetowrking을 사용하여 동기식으로 웹 서비스를 호출합니다. 예를 들어 서버에 일부 데이터를 업로드하는 중이고 Wi-Fi를 업로드하는 중입니다. Wi-Fi를 사용할 수 없다는 것을 어떻게 알 수 있으며 요청을 취소 할 수 있습니까?네트워크 요청시 Wifi를 사용할 수 없습니다.

+0

당신은 접근 가능성 클래스를 사용하고 있습니까 –

+0

예. 동기 요청 전에 Wi-Fi를 확인하고 있습니다. 그러나 문제가 진행되는 동안 – Hassy

답변

1

:

이 cocoapod을보십시오. 하지만 사용하지 않을 경우 아래의 Apple 샘플 코드에 나와 있습니다.

Reachability Introduction

프로젝트에서 이러한 클래스를 포함합니다. 이제 AppDelegate.m 파일의 도움으로 네트워크 가용성을 추적 할 수 있습니다.

didFinishLaunchingWithOptions: 방법으로 알림 옵저버를 추가하십시오. 네트워크 변경 사항을 알립니다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{   
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityDidChange:) name:kReachabilityChangedNotification object:nil]; 
} 

호스트 연결이나 네트워크 연결에 변경이있을 때 알림 메서드가 호출됩니다.

- (void)reachabilityDidChange:(NSNotification *)notification { 

    Reachability *reachability = (Reachability *)[notification object]; 
    NetworkStatus internetStatus = [reachability currentReachabilityStatus]; 

    switch (internetStatus) { 
     case NotReachable: { 
      NSLog(@"The internet is down."); 
      break; 
     } 

     case ReachableViaWiFi: { 
      NSLog(@"The internet is working via WIFI."); 
      break; 
     } 

     case ReachableViaWWAN: { 
      NSLog(@"The internet is working via WWAN."); 
      break; 
     } 
    } 

    NetworkStatus hostStatus = [reachability currentReachabilityStatus]; 

    switch (hostStatus) { 
     case NotReachable: { 
      NSLog(@"A gateway to the host server is down."); 
      break; 
     } 

     case ReachableViaWiFi: { 
      NSLog(@"A gateway to the host server is working via WIFI."); 
      break; 
     } 

     case ReachableViaWWAN: { 
      NSLog(@"A gateway to the host server is working via WWAN."); 
      break; 
     } 
    } 
} 

연결을 끊을 때 NSURLConnection 요청을 취소하십시오.

이동 요청을 취소하려면 - (void)cancel; 방법을 NSURLConnection으로 지정하십시오.