2015-01-21 66 views
0

我在使用AfNetworking 1.0进入我的应用程序。 我已经创建了AFHTTPClient的单例类。 以下是我的代码;难以使用AFNetworking(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

我使用AFNetworking 2.0。尝试在viewDidLoad中的类A中写入:[[AFNetworkReachabilityManager sharedManager] startMonitoring]; (AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status)NSLog(@“Reachability:%@”,AFStringFromNetworkReachabilityStatus(status));然后在调用你的类之前, }];和状态它的枚举 – 2015-01-21 09:19:18

+0

但我使用AFNetworking版本1.0 – Monti 2015-01-21 09:40:46

回答

0
  • (无效)startMonitoringWithStatusChangeBlock:(无效(^)(AFNetworkReachabilityStatus状态))块 {

    [自stopMonitoring];

    if(!self.networkReachability){ return; }

    __weak __typeof(self)weakSelf = self; AFNetworkReachabilityStatusBlock callback = ^(AFNetworkReachabilityStatus status){_strong__typeof(weakSelf)strongSelf = weakSelf;

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

    }; SCNetworkReachabilityContext context = {0,(__bridge void *)callback,AFNetworkReachabilityRetainCallback,AFNetworkReachabilityReleaseCallback,NULL};}};}};}}。

    SCNetworkReachabilitySetCallback(self.networkReachability,AFNetworkReachabilityCallback,& context);

    SCNetworkReachabilityFlags flags;

    SCNetworkReachabilityGetFlags(self.networkReachability,& flags);

    dispatch_async(dispatch_get_main_queue(),^ { AFNetworkReachabilityStatus状态= AFNetworkReachabilityStatusForFlags(标志); 回调(状态); }); (self.networkReachability,CFRunLoopGetMain(),kCFRunLoopCommonModes);

}

相关问题