可达性 3.7.6

可达性 3.7.6

测试测试
语言语言 Obj-CObjective C
许可 BSD
发布最后发布2024年4月

Tony Million 维护。



可达性 3.7.6

  • 作者:
  • Tony Million

这是Apple的Reachability类的替代品。它与ARC兼容,并使用新的GCD方法来通知网络接口更改。

除了标准的NSNotification,它还支持在网络可访问和不可访问时使用块。

最后,您可以指定是否将WWAN连接视为“可达”。

在设备上测试之前,不要打开问题报告

需求

一旦您已将.h/m文件添加到项目中,只需

  • 转到项目->目标->构建阶段->链接二进制与库
  • 在列表的左下角点击加号。
  • 添加SystemConfiguration.framework

完成。

示例

块示例

此示例使用块在接口状态更改时通知。这些块将在后台线程调用,因此您需要将UI更新派发到主线程。

// Allocate a reachability object
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

// Set the blocks
reach.reachableBlock = ^(Reachability*reach)
{
    // keep in mind this is called on a background thread
    // and if you are updating the UI it needs to happen
    // on the main thread, like this:

    dispatch_async(dispatch_get_main_queue(), ^{
      NSLog(@"REACHABLE!");
    });
};

reach.unreachableBlock = ^(Reachability*reach)
{
    NSLog(@"UNREACHABLE!");
};

// Start the notifier, which will cause the reachability object to retain itself!
[reach startNotifier];

NSNotification示例

此示例将使用NSNotification在接口更改时通知。它们将在主线程上传递,因此您可以在函数内部进行UI更新。

此外,它要求Reachability对象将WWAN(3G/EDGE/CDMA)视为不可达连接(例如,如果您正在编写视频流应用程序,您可能这样使用以节省用户的数据计划)。

// Allocate a reachability object
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

// Tell the reachability that we DON'T want to be reachable on 3G/EDGE/CDMA
reach.reachableOnWWAN = NO;

// Here we set up a NSNotification observer. The Reachability that caused the notification
// is passed in the object parameter
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(reachabilityChanged:)
                                             name:kReachabilityChangedNotification
                                           object:nil];

[reach startNotifier];

告诉全世界

前往 使用可达性的项目 并为“最大胜利”添加您的项目。