<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在網絡應用開發中,有時需要對用戶設備的網絡狀態進行實時監控,以至于對用戶進行友好提示 或者根據不同網絡狀態處理不一樣的邏輯(如視頻播放app,根據當前的網絡情況自動切換視頻清晰度等等)。用Reachability實現網絡的檢測。 蘋果官方提供了Reachability的示例程序,便于開發者檢測網絡狀態 [https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip](https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip) **1、 網絡狀態枚舉NetworkStatus:** ~~~ NotReachable =?0,?//沒有網絡 ReachableViaWiFi,?//Wi-Fi網絡 ReachableViaWWAN ?//移動網絡(非Wi-Fi) ~~~ **2、Reachability常用方法:** ~~~ /*! * 通過host實例化Reachability */ + (instancetype)reachabilityWithHostName:(NSString *)hostName; /*! * 通過ip地址實例化Reachability */ + (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress; /*! * 獲取網絡連接對象 */ + (instancetype)reachabilityForInternetConnection; /*! * 獲取Wi-Fi鏈接對象 */ + (instancetype)reachabilityForLocalWiFi; /*! * 監聽網絡變化方法 */ - (BOOL)startNotifier; //開始監聽 - (void)stopNotifier; //停止監聽 //當前網絡連接狀態 - (NetworkStatus)currentReachabilityStatus; ~~~ **3、監聽網絡變化:kReachabilityChangedNotification** 3.1、注冊網絡狀態通知 `[[NSNotificationCenter?defaultCenter]addObserver:selfselector:@selector(netWorkStatusChange)name:kReachabilityChangedNotificationobject:nil];` 3.2、獲取Reachability對象 `self.reachability?= [Reachability??reachabilityForInternetConnection];` 3.3、開始監聽網絡變化 `[self.reachability??startNotifier];` 3.4、關閉通知并釋放對象 ~~~ -(void)dealloc{ ? ? [self.reachabilitystopNotifier]; ? ? [[NSNotificationCenter??defaultCenter]removeObserver:self]; } ~~~ **4、Reachability的使用步驟** 4.1、添加框架SystemConfiguration.framework(xocde5之后自動添加) ![](https://box.kancloud.cn/2016-03-07_56dd40135938d.jpg) 4.2、引入源代碼 ![](https://box.kancloud.cn/2016-03-07_56dd40136a3cd.jpg) 4.3、導入頭文件 `#import?"Reachability.h"` 4.4、如果Reachability運行報arc錯誤。則源碼設置arc編譯環境(目前最新下載Reachability是arc模式)。 如果你的項目使用的非 ARC 模式,則為 ARC 模式的代碼文件加入 -fobjc-arc 標簽。 如果你的項目使用的是 ARC 模式,則為非 ARC 模式的代碼文件加入 -fno-objc-arc 標簽。 ![](https://box.kancloud.cn/2016-03-07_56dd40137f096.jpg)?? ? ?? **5、栗子:** NetWorkTool.m ~~~ #import "NetWorkTool.h" #import "Reachability.h" @implementation NetWorkTool //檢查是否Wi-Fi網絡 +(BOOL)isEnableWIFI{ return [[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable; } //檢查是否移動網絡 +(BOOL)isEnableWWAN{ //return [[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable; return [[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == ReachableViaWWAN; } @end ~~~ ViewController.m ~~~ #import "ViewController.h" #import "Reachability.h" #import "NetWorkTool.h" @interface ViewController () @property(nonatomic,strong) Reachability *reachability; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //注冊網絡狀態通知 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(netWorkStatusChange) name:kReachabilityChangedNotification object:nil]; //獲取Reachability對象 self.reachability = [Reachability reachabilityForInternetConnection]; //開始監聽網絡變化 [self.reachability startNotifier]; } //關閉通知并釋放對象 -(void)dealloc{ [self.reachability stopNotifier]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } //網絡變化 -(void)netWorkStatusChange{ NSLog(@"當前網絡發生改變"); [self checkCurNetWork]; } //檢測網絡 -(void) checkCurNetWork{ if ([NetWorkTool isEnableWIFI]) { NSLog(@"當前網絡為Wi-Fi網絡"); }else if ([NetWorkTool isEnableWWAN]){ NSLog(@"當前網絡為移動網絡"); }else{ NSLog(@"沒網絡連接"); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看