OC,oc語言

來源:互聯網
上載者:User

OC,oc語言
使用系統的方法來監聽網路狀態

  • 系統的方法是通過通知機制來實現網路狀態的監聽
  • 實現網路狀態監聽的步驟

    • 定義Reachability類型的成員變數來儲存網路的狀態

      @property (nonatomic, strong) Reachability *reachability;
    • 註冊為通知中樞的的觀察者

      // 在通知中樞註冊觀察者[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];/*** getNetworkStatus:監聽到通知的回調方法* kReachabilityChangedNotification:通知的類型,即網路狀態發生改變時,觸發通知* object:傳遞給getNetworkStatus回調方法的參數*/// 擷取並儲存網路狀態self.reachability = [Reachability reachabilityForInternetConnection];// 開始監聽[self.reachability startNotifier];
    • 在監聽到通知的觸發方法中判斷網路的狀態

      - (void)getNetworkStatus{if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable){    NSLog(@"是WIFI");}else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable){    NSLog(@"是手機內建網路");}else{    NSLog(@"網路有問題");}}
    • 將觀察者從通知中樞移除,停止監聽,清空網路監聽對象

      - (void)dealloc{[[NSNotificationCenter defaultCenter] removeObserver:self];[self.reachability stopNotifier];self.reachability = nil;}
使用AFNetworking監聽網路狀態
  • 通過AFN監聽網路狀態比較簡單
  • 實現網路狀態監聽的

    • 擷取AFNetworkReachabilityManager的執行個體

      AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    • 設定manager在網路發生變化的時回調的Block

      [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {    NSLog(@"----當前網路狀態---%zd", status);}];/*** status:表示當前網路的狀態,是個枚舉類型變數,具有以下取值*AFNetworkReachabilityStatusUnknown = -1*AFNetworkReachabilityStatusNotReachable = 0*AFNetworkReachabilityStatusReachableViaWWAN = 1*AFNetworkReachabilityStatusReachableViaWiFi = 2*/
    • 開始監聽

      [manager startMonitoring];

       

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.