[英]How to check for Network Reachability in iOS
我有一個小問題。 我正在使用Reachability類來測試互聯網連接,它運行良好。 但是假設如果用戶正在使用Wifi,但是他們無法訪問互聯網,則應該重試幾秒鍾,然后它應該向用戶顯示警報以切換蜂窩網絡。 以下是我的代碼。 當Wifi打開時,我沒有指出網絡連接速度慢的地方。
self.internetReachable = [Reachability reachabilityForInternetConnection];
[self.internetReachable startNotifier];
//_hasConnectivity = ([self.internetReachable currentReachabilityStatus] != NotReachable);
if([self.internetReachable currentReachabilityStatus] == NotReachable) {
_hasConnectivity = NO;
}
else if([self.internetReachable currentReachabilityStatus] == ReachableViaWiFi){
_hasConnectivity = YES;
}
else if([self.internetReachable currentReachabilityStatus] == ReachableViaWWAN) {
_hasConnectivity = YES;
}
嘗試使用以下代碼返回BOOL
值,如果連接可用則返回YES
否則返回NO
。
- (BOOL)isNetworkAvailable
{
CFNetDiagnosticRef dReference;
dReference = CFNetDiagnosticCreateWithURL (NULL, (__bridge CFURLRef)[NSURL URLWithString:@"www.apple.com"]);
CFNetDiagnosticStatus status;
status = CFNetDiagnosticCopyNetworkStatusPassively (dReference, NULL);
CFRelease (dReference);
if ( status == kCFNetDiagnosticConnectionUp )
{
NSLog (@"Connection is Available");
return YES;
}
else
{
NSLog (@"Connection is down");
return NO;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.