gpt4 book ai didi

ios - 可达性 + UIAlertView + 误报

转载 作者:行者123 更新时间:2023-11-29 04:18:22 26 4
gpt4 key购买 nike

大家好,我在使用 Apple 的可达性代码时遇到了一些问题。我发现,即使设备正确连接到互联网,最初可达性代码也会发出 1 个错误通知(Networkstatus = NotReachable),然后是几个正确的通知(Networkstatus = ReachableViaWiFi)。因此,当我收到“NotReachable”通知时显示 UIAlertView,即使设备已连接到互联网,应用程序仍会输出 uialertview 通知用户设备未连接。

有什么办法可以避免这种不便吗?

任何帮助将不胜感激。

这是我的代码:

在我的 .h 文件中:

@property (nonatomic, retain) Reachability *hostReach;

在我的 .m 文件中:

- (void)viewDidLoad
{
self.hostReach = [Reachability reachabilityWithHostname:@"www.google.com"];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];

[_hostReach startNotifier];


NetworkStatus netStatus = [self.hostReach currentReachabilityStatus];


if(netStatus == NotReachable && _alertShowing==NO){

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"No internet connection found"

delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles: nil];

_alertShowing = YES;

[alert show];

}

...

}


-(void)reachabilityChanged:(NSNotification *)note {

Reachability* curReach = [note object];

NSParameterAssert([curReach isKindOfClass: [Reachability class]]);

NetworkStatus netStatus = [curReach currentReachabilityStatus];


if(netStatus == NotReachable && _alertShowing==NO){

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"No internet connection found"

delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles: nil];

_alertShowing = YES;

[alert show];

}


-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
_alertShowing = NO;

}

最佳答案

为什么使用 reachabilityWithHostname:@"www.google.com"?此方法检查特定主机(在您的情况下为 google.com)的可达性。无论 Google 是否可用,您都会收到通知。 Google 可能会屏蔽您,您将收到 NotReachable 状态。

尝试使用:

//reachabilityForInternetConnection- checks whether the default route is available.  
// Should be used by applications that do not connect to a particular host
+ (Reachability*) reachabilityForInternetConnection;

还要看看方法描述 here .

关于ios - 可达性 + UIAlertView + 误报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13350283/

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