gpt4 book ai didi

iphone - 如何使用 Reachability 检测网络变化?

转载 作者:太空狗 更新时间:2023-10-30 03:31:24 26 4
gpt4 key购买 nike

我目前正在使用此检查 viewDidLoad 上的网络连接:

-(BOOL)reachable {
ReachabilityDRC *r = [ReachabilityDRC reachabilityWithHostName:@"google.com"];
NetworkStatus internetStatus = [r currentReachabilityStatus];
if(internetStatus == NotReachable) {
return NO;
}
return YES;
}

但我也想在网络发生变化时得到通知,例如 wifi 掉线或 wifi 恢复,以便我可以相应地进行更改。

我怎样才能调整我的方法来做这样的事情?

最佳答案

1- 将 SystemConfiguration.framework 添加到您的项目中。

2- 从 GitHub 下载以下文件

Reachability.h
Reachability.m

3- 在你的项目中添加这些文件

4- 在 YourViewController.h 中添加 @class Reachability;

#import <UIKit/UIKit.h>

@class Reachability;

5- 在 YourViewController.h 中添加变量 Reachability* internetReachable;

#import <UIKit/UIKit.h>

@class Reachability;

@interface YourViewController : UIViewController {
Reachability* internetReachable;
}

6- 在YourViewController.m中添加Reachability.h

#import "YourViewController.h"
#import "Reachability.h"

7- 在 YourViewController.m-(void)ViewDidLoad 中添加以下行

-(void)ViewDidLoad {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(checkNetworkStatus:)
name:kReachabilityChangedNotification
object:nil];

internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
}

8-在-(void)viewDidLoad之后添加如下函数

-(void) checkNetworkStatus:(NSNotification *)notice
{
// called after network status changes
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus)
{
case NotReachable:
{
NSLog(@"The internet is down.");
break;
}
case ReachableViaWiFi:
{
NSLog(@"The internet is working via WIFI.");
break;
}
case ReachableViaWWAN:
{
NSLog(@"The internet is working via WWAN.");
break;
}
}
}

现在,您将在控制台中看到 Internet 连接的每次更改。

关于iphone - 如何使用 Reachability 检测网络变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com