如何在objective-c中验证网络连接

Jim*_*ond 6 objective-c connectivity ios

我正在查看developer.apple.com上的Reachability示例项目,发现这是一个大型项目,只是为了验证您是否具有网络连接.

问题的第一部分是"找出设备是否可以到达3G或wifi网络所需的最低代码是多少?"

接下来应该在appDelegate(启动时)内部还是在启动的第一个View Controller内完成?

先感谢您

zrz*_*zka 3

它并不大,它确实可以满足您的要求。如果它对您来说太大,您可以只提取您需要的内容,例如reachabilityForLocalWiFi。但恐怕也不会小很多。

是的,您可以在应用程序委托中或第一个视图控制器内使用可达性。

可达性通知注册...

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(networkReachabilityDidChange:)
                                             name:kReachabilityChangedNotification
                                           object:nil];
__reachability = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
[__reachability startNotifier];
Run Code Online (Sandbox Code Playgroud)

...回调方法示例...

- (void)networkReachabilityDidChange:(NSNotification *)notification {
  Reachability *reachability = ( Reachability * )[notification object];
  if ( reachability.currentReachabilityStatus != NotReachable ) {
    // Network is available, ie. www.google.com
  } else {
    // Network is not available, ie. www.google.com
  }
}
Run Code Online (Sandbox Code Playgroud)

...不要忘记停止通知、删除观察者并释放 rechability 对象。