使用Reachability监测网络变化-陈鹏

在appdelegate里面添加观察者,并启动监测

 // 使用通知中心监听kReachabilityChangedNotification通知
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(reachabilityChanged:)
                                                 name:kReachabilityChangedNotification object:nil];
    // 获取访问指定站点的Reachability对象
    reach = [Reachability
                           reachabilityWithHostName:@"www.crazyit.org"];
    // 让Reachability对象开启被监听状态
    [reach startNotifier];

实现监听方法

- (void)reachabilityChanged:(NSNotification *)note
{
    // 通过通知对象获取被监听的Reachability对象
    Reachability *curReach = [note object];
    // 获取Reachability对象的网络状态
    NetworkStatus status = [curReach currentReachabilityStatus];
    if (status == NotReachable)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提醒"
                                                        message:@"不能访问www.crazyit.org" delegate:nil
                                              cancelButtonTitle:@"YES" otherButtonTitles:nil];
        [alert show];
    }
}

需要注意的是:Reachability在appdelegate里面需要作为全局变量,或者属性.这是因为Reachability是从mrc过渡过来的,虽然是arc版,但其中的内存管理使用的是弱引用,所以需要作为全局变量或者属性来强引用,以避免程序运行中释放掉

时间: 2024-10-01 06:47:06

使用Reachability监测网络变化-陈鹏的相关文章

iOS开发--监测网络变化

通常在APP的某些界面,需要通过网络获取数据更新界面.应用程序通过建立网络状态监听,当网络从断开变为连接状态后,自动刷新页面数据,因此不需要用户手动刷新页面,提升了产品的用户体验. 一.包含头文件 #import "Reachability.h" 同时在ViewContorller中添加实例变量:Reachability *_networkConn; 二.建立网络变化监听 网络变化包括从断开变为连接.连接变为断开两种情况,任意一种情况发生,app都会收到网络变化通知. 在viewDid

Reachability监测网络状况

这里使用了Reachability,并做了小小的封装.需要手动改成MRC模式 Reachability的通知,就是我们监听的那个,系统自动调用,如果网络发生改变,会自动发送通知,接受到通知就调用相应方法.执行对应操作. 网络状态的枚举,

AFnetworking监测网络变化

#import <Foundation/Foundation.h> #import "AFHTTPSessionManager.h" @interface AFAppDotNetAPIClient : AFHTTPSessionManager + (instancetype)sharedClient; @end #import "AFAppDotNetAPIClient.h" static NSString * const AFAppDotNetAPIB

关于目前自己iOS项目使用的第三方开源库

1.AFNetworking 目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理. 2.FMDB 对sqlite数据库操作进行了封装,demo也比较简单. 3.MBProgressHUD 也是iOS项目常用的一个组件,用于显示过渡效果的,比如网络请求之前显示loading,网络结束隐藏loading.建议封装在BaseViewController中,所有ViewController继承就能使用. 4.MJRefresh 这个是传智播客李明杰老师的作品

iOS 第三方库、插件、知名博客总结

用到的组件1.通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SDWebImage多个缩略图缓存组件 UICKeyChainStore存放用户账号密码组件 Reachability监测网络状态 DateTools友好化时间 MBProgressHUD一款提示框第三方库 MWPhotoBrowser一款简单的 iOS 照片浏览控件 CTAssetsPickerController一个选择器组件, 支持从用户的相片库选择多张照片和视频. QB

常用 iOS 开源库和第三方组件

1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图缓存组件 UICKeyChainStore 存放用户账号密码组件 Reachability 监测网络状态 DateTools 友好化时间 MBProgressHUD 一款提示框第三方库 MWPhotoBrowser 一款简单的 iOS 照片浏览控件 CTAssetsPickerController 一个选择器组件, 支持从用户的相片库选择多张照片和

iOS网络编程——Day1

1.二进制.十进制.八进制.十六进制转换 2.框架,开发工具本身提供的用于实现一个具体功能的类包 Xcode常见框架--UIKit,Foundation,CoreData 3. 第三方类库介绍    iOS的SDK相对比较底层,开发者工作相对较大,第三方类库是其他程序员编写的开源代码,可以直接拷贝到自己的程序中使用,从而简化开发工作,iOS可以支持大量第三方的开发 Three20 – 照片查看器等通用框架 ShareKit - 用于分享的开源框架 RestKit – HTTP访问开源框架 AFN

iOS 项目中用到的一些开源库和第三方组件

iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有更多的时间和精力能更加专注的做好自己的产品 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图缓存组件 UICKeyChainStore 存放用户账号密码组件 Reachability 监

离线应用和客户端存储

//region离线检测    //判断设备是否能上网 navigator.onLine  window事件online offline    //alert( navigator.onLine ); //监测网络变化    W.addHandler( window, "online", function () {        alert( "online" );    } );    W.addHandler( window, "offline&quo