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

use*_*504 3 objective-c ios

我正在开发一个处理Web服务的iOS应用程序.我正在使用此代码来检测我是否有网络连接.如果我没有互联网连接,我将展示一个视图,说明没有互联网连接(类似于iOS应用商店的方式).我的问题是,我不确定将此代码放入哪种方法.

我希望每次用户打开应用程序和/或使用其他应用程序切换到应用程序(即我的应用程序在后台打开并且用户切换到它)时,它会检查网络状态.我认为把它放在我的应用程序委托会工作,但它没有.我还考虑将它放在我的每个视图控制器viewWillAppear方法中,但是没有用.

知道在哪里放这个代码?

tgy*_*lsb 5

如果您打算使用网络连接,请查看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;
    }
}];
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到这个代码