ios – 当设备离线时使用setReachabilityStatusChangeBlock什么也不做,AFNetworking 2.0队列请求

ios – 当设备离线时使用setReachabilityStatusChangeBlock什么也不做,AFNetworking 2.0队列请求,第1张

概述当设备脱机时,我一直在尝试使用AFNetworking来排列HTTP请求的解决方案,所以当它返回在线时,请求完成.据我所了解,这可以设置setReachabilityStatusChangeBlock:参数. 到目前为止,这是我所拥有的: // ViewController.h@interface XYZTicketViewController : UIViewController<NSURLC 当设备脱机时,我一直在尝试使用AFNetworking来排列http请求的解决方案,所以当它返回在线时,请求完成.据我所了解,这可以设置setReachabilityStatusChangeBlock:参数.

到目前为止,这是我所拥有的:

// VIEwController.h@interface XYZTicketVIEwController : UIVIEwController<NSURLConnectionDelegate> // This is from before I started using AFNetworking,I'm intending to change all the requests to use AFNetworking in the near future.   @end // VIEwController.m(...)#import <AFhttpRequestoperationManager.h>#import <AFNetworkReachabilityManager.h>(...)@interface XYZTicketVIEwController ()- (voID)vIEwDIDLoad(...){NSURL *baseURL = [NSURL URLWithString:@"http://54.213.167.202"];AFhttpRequestoperationManager *manager = [[AFhttpRequestoperationManager alloc] initWithBaseURL:baseURL];NSOperationQueue *operationQueue = manager.operationQueue;[manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {    switch (status) {        case AFNetworkReachabilityStatusReachableViaWWAN:        case AFNetworkReachabilityStatusReachableViaWiFi:            [operationQueue setSuspended:NO];            NSLog(@"WIFI");            break;        case AFNetworkReachabilityStatusNotReachable:        default:            [operationQueue setSuspended:YES];            NSLog(@"oflline,baby");            break;    }}];NSDictionary *parameters = @{@"action": @"login",@"user": @"mail.address@gmail.com",@"pass": @"howdoyouturnthison"};[manager GET:@"http://54.213.167.202/API.PHP"  parameters:parameters success:^(AFhttpRequestoperation *operation,ID responSEObject) {    NSLog(@"JsON: %@",responSEObject);} failure:^(AFhttpRequestoperation *operation,NSError *error) {    NSLog(@"Error: %@",error);}];(...)}

我找不到任何例子,但我读了here这是可能的,但到目前为止,当在线状态发生变化时,任何事情都会发生.

希望你能帮助我

解决方法 在调用setReachabilityStatusChangeBlock之前,需要调用startMonitoring

[manager.reachabilityManager startMonitoring];

如果您使用的是AFNetworking 2.0,我建议如下:

[[AFNetworkReachabilityManager sharedManager] startMonitoring];[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {    DLog(@"Reachability: %@",AFStringFromNetworkReachabilityStatus(status));    switch (status) {        case AFNetworkReachabilityStatusReachableViaWWAN:        case AFNetworkReachabilityStatusReachableViaWiFi:            [operationQueue setSuspended:NO];            NSLog(@"WIFI");            break;        case AFNetworkReachabilityStatusNotReachable:        default:            [operationQueue setSuspended:YES];            NSLog(@"offline,baby");            break;    }}];
总结

以上是内存溢出为你收集整理的ios – 当设备离线时使用setReachabilityStatusChangeBlock什么也不做,AFNetworking 2.0队列请求全部内容,希望文章能够帮你解决ios – 当设备离线时使用setReachabilityStatusChangeBlock什么也不做,AFNetworking 2.0队列请求所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存