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

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

 更新時(shí)間:2016年10月11日 11:36:15   作者:不會(huì)字母的碼猿  
一般有Reachability和AFNetworking監(jiān)測(cè)兩種方式,都是第三方的框架,下文逐一詳細(xì)給大家講解,感興趣的朋友一起看看吧

一般有兩種方式,都是第三方的框架,輪子嘛,能用就先用著,后面再優(yōu)化。

一:Reachability

1.首先在AppDelegate.h添加頭文件"Reachability.h",導(dǎo)入框架SystemConfiguration.frame。

2. 在AppDelegate.m中這樣實(shí)現(xiàn):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
//開啟網(wǎng)絡(luò)狀況的監(jiān)聽
//來訂閱實(shí)時(shí)的網(wǎng)絡(luò)狀態(tài)變化通知。導(dǎo)入Reachability.h頭文件,然后注冊(cè)一個(gè)對(duì)象來訂閱網(wǎng)絡(luò)狀態(tài)變化的信息,網(wǎng)絡(luò)狀態(tài)變化的信息名稱為kReachabilityChanged-Notification
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
//通過檢查某個(gè)主機(jī)能否訪問來判斷當(dāng)前網(wǎng)絡(luò)是否可用:
self.hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"] ;
//開始監(jiān)聽,會(huì)啟動(dòng)一個(gè)run loop
[self.hostReach startNotifier];
}
-(void)reachabilityChanged:(NSNotification *)note{
Reachability *currReach = [note object];
NSParameterAssert([currReach isKindOfClass:[Reachability class]]);
//對(duì)連接改變做出響應(yīng)處理動(dòng)作
NetworkStatus status = [currReach currentReachabilityStatus];
//如果沒有連接到網(wǎng)絡(luò)就彈出提醒實(shí)況
self.isReachable = YES;
if(status == NotReachable){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"網(wǎng)絡(luò)連接異常" message:nil delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
[alert show];
[alert release];
self.isReachable = NO;
return;
}
if (status==kReachableViaWiFi||status==kReachableViaWWAN) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"網(wǎng)絡(luò)連接信息" message:@"網(wǎng)絡(luò)連接正常" delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
// [alert show];
[alert release];
self.isReachable = YES;
}
}

然后在每個(gè)頁面的viewWillAppear:加上:

-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
AppDelegate *appDlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if(appDlg.isReachable){
NSLog(@"網(wǎng)絡(luò)已連接");//執(zhí)行網(wǎng)絡(luò)正常時(shí)的代碼
}
else{
NSLog(@"網(wǎng)絡(luò)連接異常");//執(zhí)行網(wǎng)絡(luò)異常時(shí)的代碼
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"網(wǎng)絡(luò)連接異常" message:nil delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];
[alert show];
[alert release];
}
}

這樣就可以檢查到在運(yùn)行程序時(shí)網(wǎng)絡(luò)突然的中斷和連接。Reachability類實(shí)際上是蘋果公司對(duì)SCNetworkReachability API的封裝,這個(gè)API定義在SystemConfigure.framework庫中。如果有其他特別的需求,也可以直接使用這個(gè)原生的SCNetworkReachability類。

二:AFNetworking監(jiān)測(cè)

1.導(dǎo)入框架,和頭文件#import <AFNetworkReachabilityManager.h>

2.代碼:

-(void)afn{
//1.創(chuàng)建網(wǎng)絡(luò)狀態(tài)監(jiān)測(cè)管理者
AFNetworkReachabilityManager *manger = [AFNetworkReachabilityManager sharedManager];
//開啟監(jiān)聽,記得開啟,不然不走block
[manger startMonitoring];
//2.監(jiān)聽改變
[manger setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
/*
AFNetworkReachabilityStatusUnknown = -1,
AFNetworkReachabilityStatusNotReachable = 0,
AFNetworkReachabilityStatusReachableViaWWAN = 1,
AFNetworkReachabilityStatusReachableViaWiFi = 2,
*/
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"沒有網(wǎng)絡(luò)");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"3G|4G");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WiFi");
break;
default:
break;
}
}];
}

以上所述是小編給大家介紹的iOS 檢測(cè)網(wǎng)絡(luò)狀態(tài)的兩種方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • iOS利用CALayer實(shí)現(xiàn)動(dòng)畫加載的效果

    iOS利用CALayer實(shí)現(xiàn)動(dòng)畫加載的效果

    網(wǎng)上關(guān)于動(dòng)畫加載的效果大多每一個(gè)圓圈都是使用UIView,因?yàn)檫@種容易控制,但是這里用的是CALayer,文中給出了詳細(xì)的實(shí)現(xiàn)示例代碼,相信會(huì)對(duì)大家的學(xué)習(xí)和理解很有幫助,感興趣的朋友們下面來一起看看吧。
    2016-10-10
  • 詳解IOS開發(fā)中圖片上傳時(shí)兩種圖片壓縮方式的比較

    詳解IOS開發(fā)中圖片上傳時(shí)兩種圖片壓縮方式的比較

    這篇文章主要介紹了IOS開發(fā)中圖片上傳時(shí)兩種圖片壓縮方式的比較,需要的朋友可以參考下
    2017-03-03
  • iOS中程序異常Crash友好化處理詳解

    iOS中程序異常Crash友好化處理詳解

    在iOS開發(fā)調(diào)試過程中以及上線之后,程序經(jīng)常會(huì)出現(xiàn)崩潰的問題,下面這篇文章主要給大家介紹了關(guān)于iOS中程序異常Crash友好化處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07
  • iOS archive保存圖片到本地的方法

    iOS archive保存圖片到本地的方法

    這篇文章主要為大家詳細(xì)介紹了iOS archive保存圖片到本地的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • iOS13適配三指撤銷和文案限長(zhǎng)實(shí)例詳解

    iOS13適配三指撤銷和文案限長(zhǎng)實(shí)例詳解

    這篇文章主要為大家介紹了iOS13適配三指撤銷和文案限長(zhǎng)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • iOS使用Charts框架繪制折線圖

    iOS使用Charts框架繪制折線圖

    本文主要介紹了iOS使用Charts框架繪制折線圖的方法,具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2016-12-12
  • 理解Objective-C的變量以及面相對(duì)象的繼承特性

    理解Objective-C的變量以及面相對(duì)象的繼承特性

    這篇文章主要介紹了理解Objective-C的變量以及面相對(duì)象的繼承特性,文中的所說的點(diǎn)語法即是'對(duì)象名.成員變量名'這種對(duì)變量的訪問,需要的朋友可以參考下
    2016-01-01
  • 高仿IOS的Android彈出框

    高仿IOS的Android彈出框

    這篇文章主要為大家詳細(xì)介紹了高仿IOS的Android彈出框的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • iOS中的UITableView的重用機(jī)制與加載優(yōu)化詳解

    iOS中的UITableView的重用機(jī)制與加載優(yōu)化詳解

    本篇文章主要介紹了iOS中的UITableView的重用機(jī)制與加載優(yōu)化詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • iOS設(shè)置圓角的4種方法實(shí)例(附性能評(píng)測(cè))

    iOS設(shè)置圓角的4種方法實(shí)例(附性能評(píng)測(cè))

    這篇文章主要給大家介紹了關(guān)于iOS設(shè)置圓角的4種方法,并給大家附上了性能評(píng)測(cè),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01

最新評(píng)論

黎平县| 富蕴县| 绥滨县| 湘乡市| 观塘区| 安宁市| 平江县| 体育| 若尔盖县| 那曲县| 永嘉县| 阿克苏市| 辽宁省| 平乐县| 呼图壁县| 灯塔市| 石河子市| 光泽县| 宁明县| 南皮县| 莲花县| 黑水县| 方山县| 汪清县| 黄山市| 漳州市| 宜阳县| 当涂县| 北流市| 临湘市| 桃江县| 五河县| 龙江县| 理塘县| 桓台县| 梅河口市| 肇州县| 宣威市| 南通市| 托克托县| 富民县|