最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)的改變

 更新時(shí)間:2016年08月12日 11:37:19   作者:Running2snail  
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)的改變的相關(guān)資料,感興趣的小伙伴們可以參考一下

在網(wǎng)絡(luò)應(yīng)用中,有的時(shí)候需要對(duì)用戶設(shè)備的網(wǎng)絡(luò)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,有兩個(gè)目的:
 (1)讓用戶了解自己的網(wǎng)絡(luò)狀態(tài),防止一些誤會(huì)(比如怪應(yīng)用無能)
 (2)根據(jù)用戶的網(wǎng)絡(luò)狀態(tài)進(jìn)行智能處理,節(jié)省用戶流量,提高用戶體驗(yàn) 
  WIFI網(wǎng)絡(luò):自動(dòng)下載高清圖片 
  4G/3G網(wǎng)絡(luò):只下載縮略圖 
  沒有網(wǎng)絡(luò):只顯示離線的緩存數(shù)據(jù) 

 常用的有以下兩種方法: 
 ?。?)、使用蘋果觀法提供的檢測(cè)iOS設(shè)備網(wǎng)絡(luò)環(huán)境用的庫(kù) Reachablity 
 ?。?)、使用AFN框架中的AFNetworkReachabilityManager來監(jiān)聽網(wǎng)絡(luò)狀態(tài)的改變 

一、蘋果官方提供了一個(gè)叫Reachability的示例程序,便于開發(fā)者檢測(cè)網(wǎng)絡(luò)狀態(tài) 
使用之前請(qǐng)從Apple網(wǎng)站下載示例:http://xiazai.jb51.net/201608/yuanma/Reachability(jb51.net).rar

然后將Reachability.h 和 Reachability.m 加到自己的項(xiàng)目中,并引用 SystemConfiguration.framework,就可以使用了。
Reachability 中定義了3種網(wǎng)絡(luò)狀態(tài): 

typedef enum : NSInteger {

  NotReachable = 0, //無連接
  ReachableViaWiFi, //使用3G/GPRS網(wǎng)絡(luò)
  ReachableViaWWAN //使用WiFi網(wǎng)絡(luò)

} NetworkStatus;

我們可以在程序啟動(dòng)以后啟動(dòng)實(shí)時(shí)監(jiān)測(cè) 

// AppDelegate.m


@interface AppDelegate ()

@property (nonatomic, strong) Reachability *reachability;

@end

// 程序啟動(dòng)器,啟動(dòng)網(wǎng)絡(luò)監(jiān)視
- (void)applicationDidFinishLaunching:(UIApplication *)application {

  // 設(shè)置網(wǎng)絡(luò)檢測(cè)的站點(diǎn)
    NSString *remoteHostName = @"www.apple.com";
  self.reachability = [Reachability reachabilityWithHostName:remoteHostName];
  // 設(shè)置網(wǎng)絡(luò)狀態(tài)變化時(shí)的通知函數(shù)
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:)
                       name:@"kNetworkReachabilityChangedNotification" object:nil];
  [self updateStatus];
}


- (void)reachabilityStatusChange:(NSNotification *)notification
{
  Reachability* curReach = [notification object];
  NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
  [self updateInterfaceWithReachability:curReach];
}

- (void)updateInterfaceWithReachability:(Reachability *)reachability
{
  if (reachability == _reachability)
  {
    NetworkStatus netStatus = [reachability currentReachabilityStatus];
    switch (netStatus)
    {
      case NotReachable:   {
        NSLog(@"沒有網(wǎng)絡(luò)!");
        break;
      }
      case ReachableViaWWAN: {
        NSLog(@"4G/3G");
        break;
      }
      case ReachableViaWiFi: {
        NSLog(@"WiFi");
        break;
      }
    }
  }
}


- (void)dealloc
{
   [_reachability stopNotifier];
  [[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil];
} 

二、使用AFN框架中的AFNetworkReachabilityManager來監(jiān)聽網(wǎng)絡(luò)狀態(tài)的改變

//使用AFN框架來檢測(cè)網(wǎng)絡(luò)狀態(tài)的改變
-(void)AFNReachability
{
  //1.創(chuàng)建網(wǎng)絡(luò)監(jiān)聽管理者
  AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];

  //2.監(jiān)聽網(wǎng)絡(luò)狀態(tài)的改變
  /*
   AFNetworkReachabilityStatusUnknown     = 未知
   AFNetworkReachabilityStatusNotReachable   = 沒有網(wǎng)絡(luò)
   AFNetworkReachabilityStatusReachableViaWWAN = 3G
   AFNetworkReachabilityStatusReachableViaWiFi = WIFI
   */
  [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    switch (status) {
      case AFNetworkReachabilityStatusUnknown:
        NSLog(@"未知");
        break;
      case AFNetworkReachabilityStatusNotReachable:
        NSLog(@"沒有網(wǎng)絡(luò)");
        break;
      case AFNetworkReachabilityStatusReachableViaWWAN:
        NSLog(@"3G");
        break;
      case AFNetworkReachabilityStatusReachableViaWiFi:
        NSLog(@"WIFI");
        break;

      default:
        break;
    }
  }];

  //3.開始監(jiān)聽
  [manager startMonitoring];
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IOS React等Title不顯示問題解決辦法

    IOS React等Title不顯示問題解決辦法

    這篇文章主要介紹了IOS React等Title不顯示問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 2016年iOS公開可利用漏洞總結(jié)

    2016年iOS公開可利用漏洞總結(jié)

    本文總結(jié)了2016年比較嚴(yán)重的iOS漏洞(可用于遠(yuǎn)程代碼執(zhí)行或越獄),希望能夠?qū)Υ蠹乙苿?dòng)安全方面的工作和研究帶來一些幫助。
    2016-12-12
  • 詳解iOS集成GoogleMap(定位、搜索)

    詳解iOS集成GoogleMap(定位、搜索)

    這篇文章主要介紹了iOS集成GoogleMap(定位、搜索)需要注意的地方,對(duì)此有興趣的讀者一起學(xué)習(xí)下吧。
    2018-02-02
  • iOS自動(dòng)進(jìn)行View標(biāo)記的方法詳解

    iOS自動(dòng)進(jìn)行View標(biāo)記的方法詳解

    這篇文章主要給大家介紹了關(guān)于iOS自動(dòng)進(jìn)行View標(biāo)記的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • iOS實(shí)現(xiàn)自定義日期選擇器示例

    iOS實(shí)現(xiàn)自定義日期選擇器示例

    本篇文章主要介紹了iOS實(shí)現(xiàn)自定義日期選擇器示例,可以顯示年月日時(shí)分,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-02-02
  • 詳解ios監(jiān)聽reloadData刷新列表完畢的時(shí)機(jī)

    詳解ios監(jiān)聽reloadData刷新列表完畢的時(shí)機(jī)

    這篇文章主要介紹了詳解ios監(jiān)聽reloadData刷新列表完畢的時(shí)機(jī),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • iOS 檢測(cè)網(wǎng)絡(luò)狀態(tài)的兩種方法

    iOS 檢測(cè)網(wǎng)絡(luò)狀態(tài)的兩種方法

    一般有Reachability和AFNetworking監(jiān)測(cè)兩種方式,都是第三方的框架,下文逐一詳細(xì)給大家講解,感興趣的朋友一起看看吧
    2016-10-10
  • iOS實(shí)現(xiàn)圖片折疊效果

    iOS實(shí)現(xiàn)圖片折疊效果

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)圖片折疊效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Xcode使用教程詳細(xì)講解(全)

    Xcode使用教程詳細(xì)講解(全)

    本文介紹的是Xcode使用教程詳細(xì)講解,Xcode是一個(gè)款強(qiáng)大的IDE開發(fā)環(huán)境,就像你在寫Windows程序時(shí)需要VS2005一樣 需要要Xcode為你寫Mac程序提供環(huán)境
    2015-07-07
  • iOS Objective-c實(shí)現(xiàn)左右滑動(dòng)切換頁(yè)面

    iOS Objective-c實(shí)現(xiàn)左右滑動(dòng)切換頁(yè)面

    這篇文章主要為大家詳細(xì)介紹了iOS Objective-c實(shí)現(xiàn)左右滑動(dòng)切換頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論

历史| 沙坪坝区| 思南县| 威信县| 尉犁县| 冕宁县| 厦门市| 加查县| 建昌县| 渝北区| 县级市| 宿迁市| 福州市| 洞口县| 岳阳县| 瑞金市| 岐山县| 剑河县| 天津市| 科技| 德昌县| 彭山县| 筠连县| 徐闻县| 麻江县| 定西市| 甘肃省| 清镇市| 喀喇沁旗| 石嘴山市| 西畴县| 天峨县| 潍坊市| 正宁县| 汝州市| 嘉峪关市| 丁青县| 望城县| 夏河县| 崇礼县| 长兴县|