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

问题描述

我是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.

我正在使用Reachability 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];

别忘了拨打 [[NSNotificationCenter defaultCenter] removeObserver:self] ; 当您不再需要可达性检测时(即 dealloc 方法)。

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

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

09-14 19:30