開源中國iOS用戶端學習 (六) 網路連接檢測

來源:互聯網
上載者:User

開源中國iOS用戶端基於網路同步資料,從而達到與網頁看到同樣資料效果,所以在啟動程式的時候需要檢查網路;這也是每一個連網應用啟動的第一步,如果連網應用沒有檢查網路,蘋果公司將不予以審核通過;

開源中國iOS用戶端大牛們在寫網路檢測時很迷惑人,開始以為他們用的是ASI類庫做的網路檢測,今天才看明白,他們並不是用的ASI類庫檢測,而是用到AFNetworking這個類庫裡一個執行個體方法做網路連接檢測;

先看Appdelegate檔案:

在application:didFinishLaunchingWithOptions:方法裡

//檢查網路是否存在 如果不存在 則彈出提示      [Config Instance].isNetworkRunning = [CheckNetwork isExistenceNetwork];

在applicationDidBecomeActive:方法裡

- (void)applicationDidBecomeActive:(UIApplication *)application  {                [Config Instance].isNetworkRunning = [CheckNetwork isExistenceNetwork];      if ([Config Instance].isNetworkRunning == NO) {          UIAlertView *myalert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"未串連網路,將使用離線模式" delegate:self cancelButtonTitle:@"確認" otherButtonTitles:nil,nil];          [myalert show];      }  }

都用到了[Config Instance].isNetworkRunning = [CheckNetwork isExistenceNetwork];再看看Config和CheckNetwork這兩個類定義

Config類的Instance方法,

static Config * instance = nil;  +(Config *) Instance  {      @synchronized(self)      {          if(nil == instance)          {              [self new];          }      }      return instance;  }

從字面意思也能推測出是給Cinfig類執行個體化用的,isNetworkRunning是BOOL型變數

CheckNetwork在ASIHttp檔案裡,和ASI類庫放到一塊的,(裡面漢字出現亂碼)

+(BOOL)isExistenceNetwork  {  //  BOOL isExistenceNetwork;  //  Reachability *r = [Reachability reachabilityWithHostName:@"www.oschina.net"];  //    switch ([r currentReachabilityStatus]) {  //        case NotReachable:  //          isExistenceNetwork=FALSE;  //            //   NSLog(@"娌℃湁緗戠粶");  //            break;  //        case ReachableViaWWAN:  //          isExistenceNetwork=TRUE;  //            //   NSLog(@"姝e湪浣跨敤3G緗戠粶");  //            break;  //        case ReachableViaWiFi:  //          isExistenceNetwork=TRUE;  //            //  NSLog(@"姝e湪浣跨敤wifi緗戠粶");          //            break;  //    }  //  return isExistenceNetwork;                return YES;  }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.