ios - 使用 Reachability 类在 ios 中检查整个应用程序中的事件互联网连接
<p><p>我正在构建一个应用程序,只要互联网连接处于事件状态,它就需要将离线数据与服务器同步。因此,目前如果在将数据推送到服务器时互联网连接丢失,它将保存在数据库中,并且只要连接处于事件状态,它就会将数据推送到服务器。我正在使用来自苹果的新可达性类版本:3.5。根据他们针对特定 ViewController 的示例,我可以这样做</p>
<pre><code>- (void)viewDidLoad
{
[ addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
self.internetReachability = ;
;
;
}
/*!
* Called by Reachability whenever status changes.
*/
- (void) reachabilityChanged:(NSNotification *)note
{
Reachability* curReach = ;
NSParameterAssert(]);
;
}
- (void)updateInterfaceWithReachability:(Reachability *)reachability
{
if (reachability == self.internetReachability)
{
//Internet is active again- call api to push data to server
}
}
</code></pre>
<p>这适用于特定的 ViewController 。新的 Reachability 类中是否还有其他方法可以检查整个应用程序的运行情况?还是我必须在每个 ViewController 中执行此检查以检查事件的 Internet 连接?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>你可以通过appdelegate查看。我以前也这样做过。</p>
<pre><code>@property (strong,nonatomic)Reachability *reach;
@property(nonatomic)NetworkStatus netStatus;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[ addObserver:self
selector:@selector(checkNetworkStatus:)
name:kReachabilityChangedNotification object:nil];
reach = ;
;
;
}
- (void)checkNetworkStatus:(NSNotification *)notice
{
netStatus = ;
if (netStatus == NotReachable)
{
NSLog(@"The internet is down.");
// do stuff when network gone.
}
else
{
NSLog(@"The internet is working!");
// do stuff when internet comes active
[ postNotificationName:@"INTERNET_AVAILABLE" object:nil];
}
}
</code></pre>
<p>现在,当互联网出现时,它会通知。在您需要检查互联网连接的所有 View 中添加通知观察者。它正在检查整个应用程序的互联网。并且属性被合成。</p>
<p>======== 编辑</p>
<p>在应用委托(delegate).h</p>
<pre><code>+ (BOOL)isActiveInternet;
</code></pre>
<p>在应用中的delegate.m</p>
<pre><code>+ (BOOL)isActiveInternet
{
netStatus = ;
if (netStatus == NotReachable)
{
NSLog(@"The internet is down.");
// do stuff when network gone.
return FALSE;
}
else
{
NSLog(@"The internet is working!");
// do stuff when internet comes active
[ postNotificationName:@"INTERNET_AVAILABLE" object:nil];
return TRUE;
}
}
</code></pre>
<p>这样您就可以在项目中的任何位置直接调用此方法,例如</p>
<pre><code>if() {
//yes net available do your stuff
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 使用 Reachability 类在 ios 中检查整个应用程序中的事件互联网连接,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/26250944/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/26250944/
</a>
</p>
页:
[1]