如果google.com不起作用!但网是好的。代码会带来错误。所以我想删除“google.com”以检测网络的状态。
我无法找到没有地址的可达性方法。
#import "Reachability.h"
static ReachabilityCenter *reachCenter;
@implementation ReachabilityCenter
@synthesize reachablity;
@synthesize isConnectedNet;
+(id)shareCenter
{
if(!reachCenter)
{
reachCenter = [[ReachabilityCenter alloc] init];
reachCenter.reachablity = [Reachability reachabilityWithHostname:@"www.google.com"];
}
return reachCenter;
}
-(void)reachabilityChanged:(NSNotification*)note
{
Reachability * reach = [note object];
isConnectedNet = [reach isReachable];
}
-(void)beginListening
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:kReachabilityChangedNotification
object:nil];
[reachCenter.reachablity startNotifier];
}
@end
我测试代码检测没有网站的状态,ip。
-(void)detectNetStatus
{
Reachability *r = [Reachability reachabilityForLocalWiFi];
isConnectedNet = [r currentReachabilityStatus];
}
-(NetworkStatus)isConnectedNet
{
[self detectNetStatus];
return isConnectedNet;
}
答案 0 :(得分:0)
您所询问的实际上是不可能的,原因如下:您无法使用它来验证网络连接是否“确定”(以您希望的方式)。为了使用它,你必须使用它来表示与预期资源X,Y或Z的连接。
例如,请考虑以下问题:如果您连接到没有外部Internet访问权限的本地网络,该怎么办?它看起来像一个连接可用,事实上确实如此 - 它不是你想到的。
因此,您必须针对X,Y或Z进行测试,以验证您要访问的内容是否可用。
添加信息:
您可以确定网络连接是否可用:
寻找:可达性* internetReach;
问题是---只是因为网络连接可用,并且上面的InternetReach将会---它没有告诉你关于连接的任何信息。它可能只是一个本地网络。在尝试连接您希望可用的特定内容之前,您无法找到,例如Apple.com或Google.com