iphone 判断当前网络状态

本文介绍如何在iOS应用中使用Reachability框架检测网络连接状态,并提供了代码示例。包括如何添加framework、下载相关文件并整合到项目中,以及如何调用相关方法来判断当前网络类型(WiFi、3G/GPRS)以及网络是否可用(Wi-Fi、3G/GPRS)。此外,还讨论了虚拟机中模拟器与真实设备在网络测试上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、添加 framework:

将 SystemConfiguration.framework 添加进工程。

2、下载 http://download.youkuaiyun.com/detail/svrsimon/4458137

复制里面的 Reachability.h 和 Reachability.m 到项目中

3、调用的代码:

-(NSString*) GetCurrntNet
{
NSString* result;
Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"];
switch ([r currentReachabilityStatus]) {
caseNotReachable: // 没有网络连接
result=nil;
break;
caseReachableViaWWAN: // 使用3G网络
result=@"3g";
break;
caseReachableViaWiFi: // 使用WiFi网络
result=@"wifi";
break;
}
return result;
}

以上代码在虚拟机中的模拟器上测试,有异常,难道测试网络联通不能使用模拟器?

另外,不管是不是插着网线,模拟器的WIFI始终是连着的,不管电脑本身的网络是否断开(同样是在虚拟机中)
+(BOOL) IsEnableWIFI { //始终返回YES
return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
}
而3G/GPRS始终是断开的
+ (BOOL) IsEnable3G { //一直返回NO
return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值