我已经阅读了Reachability页面上的代码,但我不知道如何在if语句类型的场景中使用它。
例如,用户点击刷新按钮,触发refresh
方法(去图,嗯?),如果有互联网连接,我想要刷新数据,但如果没有,我想发送没有互联网的通知。
如何通过Reachability实现这样的目标?
我是否只使用如下代码,但根据结果将变量设置为每个块中的值,然后再看一下。这似乎不太优雅,但如果这是唯一的方式,那就这样吧。
// allocate a reachability object
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];
// set the blocks
reach.reachableBlock = ^(Reachability*reach)
{
NSLog(@"REACHABLE!");
};
reach.unreachableBlock = ^(Reachability*reach)
{
NSLog(@"UNREACHABLE!");
};
// start the notifier which will cause the reachability object to retain itself!
[reach startNotifier];
答案 0 :(得分:1)
我的应用就是这样 - 在主线程上将块中的消息发送给self - 比如hostChanged:(BOOL)状态。然后,您的自习班可以维护州的公共信息,或者其他对象可以收听的通知。
我的应用程序在app委托中具有此功能,因此其他对象很容易找到它。
请注意,确定状态需要几十秒的时间,所以我的代码在假设UP的情况下启动。
答案 1 :(得分:0)
-(BOOL)NetworkConnectionCheck {
Reachability *reachability = [Reachability reachabilityForInternetConnection];
return [reachability isReachable];
}
-(void)viewDidLoad {
if (!self.NetworkConnectionCheck) { // checks active network connection
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"There are no active wifi or data connection!" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
} else {
// do your refresh stuff here......
}
快速检查网络连接。