使用AFNetworking中 Reachability 来判断
2018-06-09 本文已影响5人
Leo_L
最近有一个朋友问我,“为什么我使用AFNetworking同步请求两个接口,有时候是两个接口都有返回参数,有时候只有最后一个接口会返回数据”,我听他说完,也是感到很奇怪,就问他具体是怎么回事。最后,他把自己封装的 请求 类给我 发了过来,我看了 一下,发现在他封装请求类中的请求方法中有一个判断网络状况的block (方法的请求实现就是在这个block里面)使用的就是AFNetworking中 Reachability 中的 AFNetworkReachabilityManager 类 来判网络状况 在AFNetworkReachabilityManager.m 中 判断网络状况的实现是一个 异步 这样就会导致当你同时请求两个及两个以上接口的时候会出现上面的情况,在网络状态 好的情况下 两个 block 里面的请求都能够得到数据,在网络状态不好的情况下 第一个请求里面判断网络的block没有执行里面的请求方法也就没有返回请求到的数据,直接进入到第二请求的block里面,返回第二个请求的数据。所以,就会出现同时请求两个接口有时候偶尔得到两个请求的情况。这只是我的看法,希望能和大家交流学习!