前言
Reachability 是苹果官方提供的示例源码,它是对 SystemConfiguration.framework
模块中的 SCNetworkReachability.h
头文件里提供的一系列网络连接状态相关的 C 函数进行简单封装。
结构流程
SCNetworkReachability.h
头文件里提供的一系列网络连接状态相关的 C 函数的使用流程如下:
- 首先调用初始化方法会调用底层的SCNetworkReachabilityCreateWithName: 或者 SCNetworkReachabilityCreateWithAddress:函数创建一个SCNetorkReachabilityRef引用。同时创建一个名为“com.tonymillion.reachablity”的串行队列。
- 调用startNotifier方法,会调用SCNetworkReachabilityContext初始化一个上下文信息。接着调用SCNetworkReachabilitySetCallback设置网络监听回调。
- 调用SCNetworkReachabilitySetDispatchQueue,将通知添加到队列中,并开启网络状态监听。
- 在回调方法reachabilityChanged: 方法中会返回SCNetworkReachabilityFlags的引用,这里面封装了网络的各种状态值。