问题描述
我是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连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!