有没有人找到在 iOS 上实现可达性的中途指南?
问问题
30948 次
3 回答
95
我已经实现了这样的可达性。下载https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html并将 Reachability.h 和 .m 添加到您的项目中。将 SystemConfiguration 框架添加到您的项目中。#import "Reachability.h" 你想在哪里使用它。使用此代码。
-(BOOL)reachable {
Reachability *r = [Reachability reachabilityWithHostName:@"enbr.co.cc"];
NetworkStatus internetStatus = [r currentReachabilityStatus];
if(internetStatus == NotReachable) {
return NO;
}
return YES;
}
当您要检查可达性时...
if ([self reachable]) {
NSLog(@"Reachable");
}
else {
NSLog(@"Not Reachable");
}
这是我制作的示例项目。http://dl.dropbox.com/u/3656129/ReachabilityExample.zip
于 2010-10-17T16:56:35.503 回答
2
我认为检查主机地址可用性的最佳方法是检查 NSURL 请求的结果。
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:reqURL]];
NSURLResponse *resp = nil;
NSError *error = nil;
NSData *response = [NSURLConnection sendSynchronousRequest: theRequest returningResponse: &resp error: &error];
NSString *responseString = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
使用这段代码,如果您的设备无法访问提供的 URL,它会向错误变量提供一些输出,如果它可以访问 URL 请求,则错误为 Nil。
即使您的 URL 数据包可以从您的设备路由出去并且永远不会到达主机服务器,可达性也会提供积极的输出。
于 2013-08-13T16:32:07.727 回答
0
这个问题似乎只有过时的答案。从 iOS 12 开始,我们有了NWPathMonitor,所以你至少也应该研究一下。
于 2021-08-01T10:47:35.717 回答