2015-01-21 1 views
0

내 응용 프로그램에 AfNetworking 1.0을 사용하고 있습니다. AFHTTPClient의 싱글 톤 클래스를 만들었습니다. 다음 코드는 입니다.AFNCetwork (AFClient)를 사용하여 네트워크를 확인하는 데 어려움을 겪고 있습니다.

+ (id)sharedInstance { 

static WebServices *__sharedInstance; 
static dispatch_once_t onceToken; 
dispatch_once(&onceToken, ^{ 
NSString *WebServiceBaseURLString = [[NSUserDefaults standardUserDefaults]stringForKey:@"URL"]; 

__sharedInstance = [[WebServices alloc] initWithBaseURL:[NSURL URLWithString:WebServiceBaseURLString]]; 



}); 


return __sharedInstance; 
} 



- (id)initWithBaseURL:(NSURL *)url { 


self = [super initWithBaseURL:url]; 


if (self) { 

NSString *accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"UserToken"]; 
NSLog(@"accessToken=%@",accessToken); 

[self setAuthorizationHeaderWithToken:accessToken]; 

NSLog(@"self=%@",self); 

[self registerHTTPOperationClass:[AFJSONRequestOperation class]]; 

self.parameterEncoding = AFJSONParameterEncoding; 
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"application/json"]]; 



} 


return self; 
} 

작업 파일.

는하지만 지금은 네트워크를 확인하려면 AFNetworkReachabilityStatus 블록

를 사용하고 싶습니다.

[self setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status){ 
NSLog(@"changed %d", status); 

}]; 

AFNetworkReachabilityStatus 블록을 사용하는 방법에 대해 조언 해 줄 수 있습니까?

+0

. viewDidLoad 클래스 A에서보십시오 : [[AFNetworkReachabilityManager sharedManager] startMonitoring]; 그런 다음 클래스를 호출하기 전에 다음을 수행하십시오. [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock :^(AFNetworkReachabilityStatus status) { NSLog (@ "Reachability : % @", AFStringFromNetworkReachabilityStatus (status)); }]]; 및 상태 enum입니다 –

+0

하지만 AFNetworking 버전 1.0 사용하고 – Monti

답변

0
  • (공극) startMonitoringWithStatusChangeBlock (보이드 (^) (AFNetworkReachabilityStatus 상태)) {블록

    [자기 stopMonitoring];

    if (! self.networkReachability) { return; }

    __weak __typeof (self) weakSelf = self; AFNetworkReachabilityStatusBlock 콜백 =^(AFNetworkReachabilityStatus 상태) { __strong __typeof (weakSelf) strongSelf = weakSelf;

    strongSelf.networkReachabilityStatus = status; 
    if (block) { 
        block(status); 
    } 
    

    }};

    SCNetworkReachabilityContext 컨텍스트 = {0, (__bridge void *) 콜백, AFNetworkReachabilityRetainCallback, AFNetworkReachabilityReleaseCallback, NULL};

    SCNetworkReachabilitySetCallback (self.networkReachability, AFNetworkReachabilityCallback, & 컨텍스트);

    SCNetworkReachabilityFlags 플래그;

    SCNetworkReachabilityGetFlags (self.networkReachability, & 플래그);

    dispatch_async (dispatch_get_main_queue()^{ AFNetworkReachabilityStatus 상태 = AFNetworkReachabilityStatusForFlags (플래그) 콜백 (상태) });

    SCNetworkReachabilityScheduleWithRunLoop (self.networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes);

} 내가 AFNetworking 2.0을 사용하고

관련 문제