gpt4 book ai didi

ios - 在方法运行之前使用可达性检查连接

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:47 25 4
gpt4 key购买 nike

我想使用 Reachability在我的应用程序中检查 Internet 连接。

我找到了 a tutorial其中介绍了如何在应用程序中进行设置。在教程中,它解释了“第 4 步”——可达性管理器。它提到了以下内容:

This is useful if an object needs direct access to the reachability instance that the singleton object manages.

什么是这方面的例子?什么对象需要直接访问实例?

在我的应用程序中,我有多种方法需要互联网连接才能运行。我想要实现的是以下两种方法之一:

  1. 当互联网连接丢失时显示一个 UIAlertView 询问用户重试。

    注意:这仅适用于某些 View Controller ,并非贯穿始终应用程序,因为我不需要完全限制访问贯穿始终。

  2. 或者 - 我想使用一种方法来检查互联网连接在运行需要的实际方法之前存在连接。

如何以这种方式使用 Reachability 进行设置?

最佳答案

在第 4 部分中有一个可达性包装器示例(但在该实现中没有 kReachabilityChangedNotification 处理)。那么你应该如何使用它呢? —正如您在 MTReachabilityManager 的界面中看到的那样,有 1 种获取管理器单例实例的方法和 4 种使用它的方法:

+ (BOOL)isReachable;
+ (BOOL)isUnreachable;
+ (BOOL)isReachableViaWWAN;
+ (BOOL)isReachableViaWiFi;

对于需要连接的方法中的第二种方法,您必须执行以下操作:

if ([[MTReachabilityManager sharedManager] isReachable]) {
//do internet
} else {
//alert 'no internet' or something
}

对于第一种方法(从网络获取数据时连接丢失),此包装器不会帮助您(未实现对 kReachabilityChangedNotification 的监听)。因此,您必须添加本教程第 3 部分(第 3 步:通知)中的代码 — 在调用网络代码之前的某处添加 kReachabilityChangedNotification 的监听器:

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

并添加处理通知的方法(当互联网改变它的状态时将被触发):

- (void)reachabilityDidChange:(NSNotification *)notification {
Reachability *reachability = (Reachability *)[notification object];
if ([reachability isReachable]) {
NSLog(@"Reachable");
//if before there was no internet - now you can do whatever user wants when there was no internet
} else {
NSLog(@"Unreachable");
//alert retry
}
}

关于ios - 在方法运行之前使用可达性检查连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953398/

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