AFNetwork学习笔记<一>AFNetworkReachab

2015-12-24  本文已影响0人  duncam

NetworkReachability相关的API

    1. 构造struct sockaddr_in
    struct sockaddr_in address;
    bzero(&address, sizeof(address));
    address.sin_len = sizeof(address);
    address.sin_family = AF_INET;

    2. 构造SCNetworkReachabilityRef
    SCNetworkReachabilityRef networkReachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)address);
    SCNetworkReachabilityRef networkReachability = SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, [domain UTF8String]);
    
     3.构造SCNetworkReachabilityContext
     SCNetworkReachabilityContext context = {0, (__bridge void *)callback, AFNetworkReachabilityRetainCallback, AFNetworkReachabilityReleaseCallback, NULL};

     4.设置回调SCNetworkReachabilitySetCallback
     SCNetworkReachabilitySetCallback((__bridge SCNetworkReachabilityRef)networkReachability, AFNetworkReachabilityCallback, &context);
 
     5.将SCNetworkReachabilityRef加入到runloop中
     SCNetworkReachabilityScheduleWithRunLoop((__bridge SCNetworkReachabilityRef)networkReachability, CFRunLoopGetMain(), kCFRunLoopCommonModes);

     6.主动获取当前的网络状态
     SCNetworkReachabilityFlags flags;
     SCNetworkReachabilityGetFlags((__bridge SCNetworkReachabilityRef

之前使用过其他的Reachability第三方库,存在一些问题:

问题讨论

1. 以前测试网络不可达时会提供一个domain,按照构造SCNetworkReachabilityRef的方法可以使用SCNetworkReachabilityCreateWithAddress

先挖坑,再努力填!

上一篇 下一篇

猜你喜欢

热点阅读