场景非常简单,我的应用程序会在活动时查找信息。大多数情况下它只会使用缓存,但在某些情况下,它需要Internet连接才能请求所需的信息。
我已使用Reachability(https://github.com/tonymillion/Reachability)来确定是否存在可用的活动连接。问题是iPhone在一段时间处于非活动状态后需要几秒钟来激活连接。这意味着应用程序发现没有可用的连接,并显示错误消息。
我想要发生的是应用程序将首先检查是否有可用的连接:
Reachability *reachability = [Reachability reachabilityWithHostname:URL_LOTTOTALL_WEB];
NetworkStatus internetStatus = [reachability currentReachabilityStatus];
if (internetStatus == NotReachable) {
} else {
}
如果没有可用的连接,我想在几秒钟(可能是2或3)重试。如果仍然没有可用的连接显示错误消息。有什么建议可以通过简单的实现来实现吗?
答案 0 :(得分:3)
尝试使用Reachability
中的回调块,如中所述
this answer
internetReachableFoo = [Reachability reachabilityWithHostname:@"www.google.com"];
// Internet is reachable
internetReachableFoo.reachableBlock = ^(Reachability*reach)
{
// Update the UI on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Yayyy, we have the interwebs!");
});
};
// Internet is not reachable
internetReachableFoo.unreachableBlock = ^(Reachability*reach)
{
// Update the UI on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Someone broke the internet :(");
});
};
[internetReachableFoo startNotifier];