How to use reachability class to detect valid internet connection?(如何使用可达性类来检测有效的互联网连接?)
问题描述
我是 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).
这篇关于如何使用可达性类来检测有效的互联网连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用可达性类来检测有效的互联网连接?


基础教程推荐
- :hover 状态不会在 iOS 上结束 2022-01-01
- Android ViewPager:在 ViewPager 中更新屏幕外但缓存的片段 2022-01-01
- “让"到底是怎么回事?关键字在 Swift 中的作用? 2022-01-01
- 固定小数的Android Money Input 2022-01-01
- 使用 Ryzen 处理器同时运行 WSL2 和 Android Studio 2022-01-01
- 在 iOS 上默认是 char 签名还是 unsigned? 2022-01-01
- 如何使 UINavigationBar 背景透明? 2022-01-01
- LocationClient 与 LocationManager 2022-01-01
- 如何使用 YouTube API V3? 2022-01-01
- Android文本颜色不会改变颜色 2022-01-01