如何使用可达性类来检测有效的互联网连接? [英] How to use reachability class to detect valid internet connection?

查看:14
本文介绍了如何使用可达性类来检测有效的互联网连接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 iOS 开发的新手,正在努力让reachability.h 类正常工作.这是我的视图控制器代码:

I'm new to iOS development and am struggling to get the reachability.h class to work. Here is my code for view controller:

- (void)viewWillAppear:(BOOL)animated
{
    [[NSNotificationCenter defaultCenter]
     addObserver:self 
     selector:@selector(checkNetworkStatus:) 
     name:kReachabilityChangedNotification 
     object:nil];

    internetReachable = [Reachability reachabilityForInternetConnection];
    [internetReachable startNotifier];
}

- (void)checkNetworkStatus:(NSNotification *)notice {
    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
    NSLog(@"Network status: %i", internetStatus);
}

看起来不错,但在运行应用程序并切换到该视图时,xcode 控制台中没有出现任何内容.

It looks ok but nothing is appearing in the xcode console when running the app and switching to that view.

我正在使用可达性 2.2 和 iOS 4.2.

I'm using Reachability 2.2 and iOS 4.2.

有什么明显的我做错了吗?

Is there something obvious that I am doing wrong?

推荐答案

如果你想在一些代码执行之前检查可达性,你应该使用

EDITED: If you want to check reachability before some code execution you should just use

Reachability *reachability = [Reachability reachabilityForInternetConnection];    
NetworkStatus internetStatus = [reachability currentReachabilityStatus];
if (internetStatus != NotReachable) {
    //my web-dependent code
}
else {
    //there-is-no-connection warning
}

您还可以在某处添加可达性观察者(即在 viewDidLoad 中):

You can also add a reachability observer somewhere (i.e. in viewDidLoad):

Reachability *reachabilityInfo;
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(myReachabilityDidChangedMethod)
                                             name:kReachabilityChangedNotification
                                           object:reachabilityInfo];

当您不再需要可达性检测时(即在 dealloc 方法中),不要忘记调用 [[NSNotificationCenter defaultCenter] removeObserver:self];.

Don't forget to call [[NSNotificationCenter defaultCenter] removeObserver:self]; when you no longer need reachability detection (i.e. in dealloc method).

这篇关于如何使用可达性类来检测有效的互联网连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆