AFNetworking和无Internet连接方案

Fre*_*ins 23 iphone cocoa-touch ios afnetworking

AFNetworking在我的应用程序中使用每个请求(如登录,从URL获取数据等).

以此为例:用户点击登录按钮并且没有连接,如何立即显示出UIAlertView错误?该唯一的办法就是等待请求超时并执行failure块?有没有办法立即检查是否有连接?

谢谢!

mat*_*ttt 57

从0.9开始,AFHTTPClient实际上内置了网络可达性(Apple的上述Reachability代码的简单接口).只需包含SystemConfiguration框架并使用它-setReachabilityStatusChangeBlock:来指定可达性状态更改时的响应.

  • 将`#import <SystemConfiguration/SystemConfiguration.h>`添加到项目的头文件前缀(Prefix.pch).这是添加SystemConfiguration框架后的必需步骤. (9认同)
  • 一点都不.`AFHTTPClient`监视可达性变化并在发生时执行指定的块.该块有一个参数,它是一个布尔值,用于判断`baseURL`是否可达. (3认同)
  • @mattt我在设置`JSONRequestOperationWithRequest:success:failure`之前设置了`setReachabilityStatusChangeBlock:`,这是正确的方法吗?如果是这种情况,当我获得"AFNetworkReachabilityStatusNotReachable"状态时,如何取消操作,或者当它看到"AFNetworkReachabilityStatusNotReachable"时会自动调用失败块? (3认同)

Yog*_*wal 28

有了AFNetworking这些都是一个人,以便采取的优势,按照步骤setReachabilityStatusChangeBlock:添加AFNetworing班后-

  1. 添加SystemConfiguration.framework到您的项目
  2. 在pch文件中添加 #import <SystemConfiguration/SystemConfiguration.h>
  3. 假设你AFHTTPClient在这个子类中有一个子类,在init函数中添加下面的代码行 -
[self setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        NSLog(@"changed %d", status);
        //your code here
    }];