美文网首页
iOS_学习AFNetworking(01)--AFNetwor

iOS_学习AFNetworking(01)--AFNetwor

作者: 丘名山 | 来源:发表于2019-04-24 20:29 被阅读0次

前言:AFNetworkReachabilityManager基于系统API  SystemConfiguration框架

SystemConfiguration框架允许应用程序访问设备的网络配置设置。 确定设备的可连接性,例如Wi-Fi或cell连接是否处于活动状态。接下来几篇我们就一起看一下这个框架。

1.NS_DESIGNATED_INITIALIZER     NS_UNAVAILABLE

NS_DESIGNATED_INITIALIZER 用于明确初始化方法, NS_UNAVAILABLE 的作用是,直接禁用其他初始化方法,简单粗暴。

2.FOUNDATION_EXPORT

FOUNDATION_EXPORT是对字符串的指针地址比较;          #define是调用isEqualToString 的方法;

3.初始化

+ (instancetype)sharedManager; 单例

+ (instancetype)managerForDomain:(NSString*)domain;                    用SCNetworkReachabilityRef 初始化   SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, [domain UTF8String]);

+ (instancetype)managerForAddress:(constvoid*)address;  //socketaddress初始化     SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)address);

+ (instancetype)manager;     总的来说也是用socketaddress初始化

- (instancetype)initWithReachability:(SCNetworkReachabilityRef)reachability; 用reachability 初始化

3.追踪

- (void)startMonitoring;  每次开始追踪时都要停止追踪

主要代码

// 通过调用 SCNetworkReachabilityScheduleWithRunLoop 函数设置 Reachability 对象的 ref 在 Current Runloop 中对应的模式(kCFRunLoopDefaultMode)开始监听网络状态;

SCNetworkReachabilityScheduleWithRunLoop(self.networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes);

GCD进程锁  开启通知 AFNetworkingReachabilityDidChangeNotification

4.停止追踪

SCNetworkReachabilityUnscheduleFromRunLoop方法

主要代码

 SCNetworkReachabilityUnscheduleFromRunLoop(self.networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes);

以上代码仅限自己研究  如有错误欢迎指正,万分感谢

相关文章

网友评论

      本文标题:iOS_学习AFNetworking(01)--AFNetwor

      本文链接:https://www.haomeiwen.com/subject/iskngqtx.html