gpt4 book ai didi

objective-c - 您在哪里调用 Reachability?

转载 作者:可可西里 更新时间:2023-11-01 04:47:52 27 4
gpt4 key购买 nike

我正在尝试在我的应用中实现可达性。我在 applicationDidFinishLaunching 中有它。如果我的连接真的很糟糕并且我启动了应用程序,Reachability 会一直持续并且经常使应用程序崩溃并显示 The application failed to launch in time 错误消息。

因此,我尝试将对 Reachability 的调用放在后台线程中。但是当我这样做时,我不再收到可达性通知。

我应该在哪里调用 Reachability?

编辑:

我按照下面的建议添加了 TonyMillions 的可达性代码,但在非常糟糕的网络条件下,我仍然遇到相同的 application failed to load in time 错误。要重现我所看到的,请转至 Settings.app -> Developer -> Network Link Conditioner,将其打开并将其设置为 100% 丢失。

您的应用是否仍会在那种情况下加载?

最佳答案

在 Github 上使用 Tony Millions 可达性项目。

https://github.com/tonymillion/Reachability

然后在我的应用程序委托(delegate)中,我只是输入了 applicationdidfinishlaunching

self.reachability = [Reachability reachabilityForInternetConnection];

[self.reachability startNotifier];

然后当状态改变时,这将被调用

#pragma mark - Reachability

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

NetworkStatus ns = [(Reachability *)[note object] currentReachabilityStatus];

if (ns == NotReachable) {

if (![self.networkAlert isVisible]) {

if ([self networkAlert] == nil) {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"\n\nNo Internet Connection" message:@"You require an internet connection to communicate with the server." delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
[self setNetworkAlert:alert];
}

[self.networkAlert show];
}
} else {

if ([self networkAlert] != nil) {

[self.networkAlert dismissWithClickedButtonIndex:0 animated:YES];
}
}
}

关于objective-c - 您在哪里调用 Reachability?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13245285/

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