这是Apple的Reachability
类的替代品。它与ARC兼容,并使用新的GCD方法来通知网络接口更改。
除了标准的NSNotification
,它还支持在网络可访问和不可访问时使用块。
最后,您可以指定是否将WWAN连接视为“可达”。
在设备上测试之前,不要打开问题报告
一旦您已将.h/m
文件添加到项目中,只需
项目->目标->构建阶段->链接二进制与库
。SystemConfiguration.framework
。完成。
此示例使用块在接口状态更改时通知。这些块将在
// 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
在接口更改时通知。它们将在
此外,它要求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];
前往 使用可达性的项目 并为“最大胜利”添加您的项目。