ios - 在 iOS 应用中检查网络连接的位置

标签 ios objective-c

我正在开发处理 Web 服务的 iOS 应用程序。我正在使用 this code检测我是否有网络连接。如果我没有互联网连接,我将显示一个显示没有互联网连接的 View (类似于 iOS 应用商店的做法)。我的问题是我不确定将此代码放入哪个方法。

我希望每次用户打开应用程序和/或从使用另一个应用程序切换到该应用程序时(即我的应用程序在后台打开并且用户切换到它)它检查网络状态。我认为将它放在我的应用程序委托(delegate)中会起作用,但它没有。我还考虑过将它放入我的每个 View Controller viewWillAppear 方法中,但这没有用。

知道把这段代码放在哪里吗?

最佳答案

如果你打算使用网络连接,你应该看看AFNetworking https://github.com/AFNetworking/AFNetworking

最新版本的 AFNetworking (2.0) 现在构建在 NSURLSession 之上,因此您可以获得那里提供的所有强大功能。但是你也会得到很多额外的很酷的特性——比如序列化、可达性支持、UIKit 集成(比如在 UIImageView 中异步加载图像的一个方便的类别)等等。它也是使用最广泛的开源项目之一,在 Github 上拥有超过 10,000 颗星、2,600 个分支和 160 个贡献者。

它有一个名为 AFNetworkReachabilityManager 的功能来处理您的请求。

[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    DLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
    switch (status) {
        case AFNetworkReachabilityStatusReachableViaWWAN:
        case AFNetworkReachabilityStatusReachableViaWiFi:
            [operationQueue setSuspended:NO];
            NSLog(@"WIFI");
            break;
        case AFNetworkReachabilityStatusNotReachable:
        default:
            [operationQueue setSuspended:YES];
            NSLog(@"oflline");
            break;
    }
}];

您可以找到此代码 here

关于ios - 在 iOS 应用中检查网络连接的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24504352/

相关文章:

ios - 在 UIWebView 中获取页面标题?

ios - ios7 : CGContextDrawImage or UIView setImage? 速度大幅下降

ios - 披露指示器移动单元格 subview

ios - 如何使用 UIButton 为单元格设置动画?

ios - webView中的scrollView不能滚动?

iphone - 在使用大量 HTTP 请求的应用程序中使用单例有什么问题?

ios - 安排应用程序在特定日期/时间启动/进入前台

xcode - 更改图像时 UIImageView 图像消失

ios - CLLocationManager didVisit 不工作

ios - UIActionSheet block View Controller dealloc