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

* 前言

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


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


2..h文件中修改


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


iOS AFNetworking3.0适配ipv6遇到的坑自己小总结简单明了_第1张图片
iOS AFNetworking3.0适配ipv6遇到的坑自己小总结简单明了_第2张图片

成果

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

.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;

}

你可能感兴趣的:(iOS AFNetworking3.0适配ipv6遇到的坑自己小总结简单明了)