菜鸟教程小白 发表于 2022-12-12 16:23:00

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


                                            <p><p>我想使用 <a href="https://github.com/tonymillion/Reachability" rel="noreferrer noopener nofollow">Reachability</a>检查我的应用程序中的 Internet 连接。 </p>

<p>我找到了<a href="http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-detecting-network-changes-with-reachability/" rel="noreferrer noopener nofollow">a tutorial</a>它将在应用程序中进行设置。在本教程中,它解释了“第 4 步” - 可达性管理器。它提到了以下内容:</p>

<blockquote>
<p>This is useful if an object needs direct access to the reachability
instance that the singleton object manages.</p>
</blockquote>

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

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

<ol>
<li><p>当互联网连接丢失时显示 UIAlertView 询问
用户重试。 </p>

<p>注意:这仅在某些 ViewController 上,而不是全部
应用程序,因为我不需要完全限制访问
结束。</p></li>
<li><p>或者 - 我想使用一种方法来检查互联网连接
在运行需要
连接。</p></li>
</ol>

<p>如何以这种方式使用可达性进行设置?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在第 4 节中,有一个 Reachability 包装器示例(但在该实现中没有 kReachabilityChangedNotification 处理)。那么应该如何使用呢? —
正如您在 MTReachabilityManager 的界面中看到的那样,有 1 种获取管理器单例实例的方法和 4 种使用它的方法:</p>

<pre><code>+ (BOOL)isReachable;
+ (BOOL)isUnreachable;
+ (BOOL)isReachableViaWWAN;
+ (BOOL)isReachableViaWiFi;
</code></pre>

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

<pre><code>if ([ isReachable]) {
   //do internet
} else {
   //alert &#39;no internet&#39; or something
}
</code></pre>

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

<pre><code>[ addObserver:self selector:@selector(reachabilityDidChange:) name:kReachabilityChangedNotification object:nil];
</code></pre>

<p>并添加处理通知的方法(将在互联网更改其状态时触发):</p>

<pre><code>- (void)reachabilityDidChange:(NSNotification *)notification {
    Reachability *reachability = (Reachability *);
    if () {
      NSLog(@&#34;Reachable&#34;);
      //if before there was no internet - now you can do whatever user wants when there was no internet
    } else {
      NSLog(@&#34;Unreachable&#34;);
      //alert retry
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在运行方法之前使用可达性检查连接,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19953398/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19953398/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在运行方法之前使用可达性检查连接