[爆栈热门 iOS 问题] 检测手机上网络通不通
2015-10-10 本文已影响703人
戴仓薯
系列文集:爆栈热门 iOS 问题。目录在此。仓薯翻译,欢迎指正:)
问题
如题。
答案
仓薯注:最高票答案(1008票)涉及尝试连一下 google 或者 apple,在国内肯定没戏/很慢,而且觉得并没有这个必要。排名第二的答案很简洁,而且亲测可用,所以只翻译第二个答案。
cannyboy,252 票
我比较喜欢简单直接的方法。我用的是:
//Class.h
#import "Reachability.h"
#import <SystemConfiguration/SystemConfiguration.h>
- (BOOL)connected;
//Class.m
- (BOOL)connected {
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];
return networkStatus != NotReachable;
}
在需要检查网络通不通的地方,用:
if (![self connected]) {
// 网络不通
} else {
// 网络通畅
}
这个方法不会监听网络状态变化什么的,它就是在你需要查的时候去查一下。
原文地址:How to check for an active Internet Connection on iPhone SDK?
系列文集:爆栈热门 iOS 问题
译者:@戴仓薯