判斷網絡連接狀態

眾所周知,我們在開發APP時,涉及網絡連接的時候,都會想著提前判斷一下當前的網絡連接狀態,如果沒有網絡,就不再請求url,省去不必要的步驟,所以,這個如何判斷?其實很簡單。

前提:工程添加:SystemConfiguration.frameworkframework

然后在需要判斷的類中包含頭文件:

[cpp]view plaincopy

#import?"Reachability.h"

【如果你使用的ASIHTTPRequest類庫,那么直接import Reachbility.h就可以了,ASIHTTP類庫里包含Reachbility.h和.m】

下面是我寫的一個方法:

[cpp]view plaincopy

-(BOOL)?isConnectionAvailable{

BOOLisExistenceNetwork?=?YES;

Reachability?*reach?=?[Reachability?reachabilityWithHostName:@"www.apple.com"];

switch([reach?currentReachabilityStatus])?{

caseNotReachable:

isExistenceNetwork?=?NO;

//NSLog(@"notReachable");

break;

caseReachableViaWiFi:

isExistenceNetwork?=?YES;

//NSLog(@"WIFI");

break;

caseReachableViaWWAN:

isExistenceNetwork?=?YES;

//NSLog(@"3G");

break;

}

if(!isExistenceNetwork)?{

MBProgressHUD?*hud?=?[MBProgressHUD?showHUDAddedTo:self.view?animated:YES];//MBProgressHUD為第三方庫,不需要可以省略或使用AlertView

hud.removeFromSuperViewOnHide?=YES;

hud.mode?=?MBProgressHUDModeText;

hud.labelText?=?NSLocalizedString(INFO_NetNoReachable,?nil);

hud.minSize?=?CGSizeMake(132.f,?108.0f);

[hud?hide:YES?afterDelay:3];

returnNO;

}

returnisExistenceNetwork;

}

然后在需要判斷的地方直接:[self isConnectionAvailable] ,大家看懂了吧,就這么簡單。

所以舉一反三,如果你不單單是判斷是否網絡通暢,而是要判斷是WIFI或3G,再寫一個isEnableWIFI的方法,具體判斷方法就不用再贅述了吧,currentReachabilityStatus判斷之。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容