iOS AFNetworking3.0适配ipv6遇到的坑自己小总结简单明了

* 前言

    前几天迭代更新了一次版本,但是因为项目中用到了AFN网络请求框架屡提屡拒,作者也是不知道在哪里听说AFN3.0以后不是支持ipv6了么?但是还是因为ipv6的问题给我 拒了~拒了~拒了~ 因为我上几次迭代的时候也是没做任何修改但是给我过了,就因为这样所以没去做修改,可能抱有一丝侥幸吧就又提交了两三次并且录了视频并且发了邮件发现还是RBL。最后还是做修改吧,万一过了呢 - - 下面附上本人自己针对AFN3.0做的修改吧!


1.在AFNetworkReachabilityManager .h文件和.m文件中做修改


2..h文件中修改


3..m文件中相应的修改


成果

结果今天早上一来上班看到等待开发人员发布,心情大悦总算是解决了一个问题吧!下面附上代码需要的童鞋可以参考!

.h文件

//+ (instancetype)managerForAddress:(const void *)address;                      //修改前

+ (instancetype)managerForAddress:(const struct sockaddr_in6*)address;          //修改后


.m文件


//修改1:

+ (instancetype)sharedManager {

/**  修改前*/

//    static AFNetworkReachabilityManager *_sharedManager = nil;

//    static dispatch_once_t onceToken;

//    dispatch_once(&onceToken, ^{

//        _sharedManager = [self manager];

//    });

/**  修改后*/

    static AFNetworkReachabilityManager*_sharedManager =nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        struct sockaddr_in6 address;

        bzero(&address,sizeof(address));

        address.sin6_len=sizeof(address);

        address.sin6_family=AF_INET6;

        _sharedManager = [self managerForAddress:&address];

    });

    return _sharedManager;

}


修改2:

+ (instancetype)managerForAddress:(const void *)address {

/**  修改前*/

//    SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)address);

//    AFNetworkReachabilityManager *manager = [[self alloc] initWithReachability:reachability];

//    CFRelease(reachability);

/**  修改后*/

SCNetworkReachabilityRef reachability =SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)address);

AFNetworkReachabilityManager *manager = [[self alloc] initWithReachability:reachability];

CFRelease(reachability);

  return manager;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容