代码之家  ›  专栏  ›  技术社区  ›  esqew

iOS可达性指南

  •  43
  • esqew  · 技术社区  · 14 年前

    有没有人找到一个在iOS上实现可达性的半点像样的指南?

    2 回复  |  直到 7 年前
        1
  •  95
  •   Cœur N0mi    7 年前

    我已经实现了这样的可达性。 下载 https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html 并将可达性.h和.m添加到项目中。将SystemConfiguration框架添加到项目中。#将“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

        2
  •  2
  •   yabtzey    11 年前

    我认为检查主机地址可用性的最好方法是检查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数据包可以从您的设备路由出去并且永远不会到达主机服务器,可访问性也会提供一个正输出。