注*:这不算什么文章,只是遇到的坑自己总结一下记录一下吧,如果有遇到相应问题的童鞋也可以提供一点思路或者帮助吧!(不喜可喷毕竟第一次写总结,被喷是成长)适配ipv6水很深,这只是我遇到的小问题!
前几天迭代更新了一次版本,但是因为项目中用到了AFN网络请求框架屡提屡拒,作者也是不知道在哪里听说AFN3.0以后不是支持ipv6了么?但是还是因为ipv6的问题给我 拒了~拒了~拒了~ 因为我上几次迭代的时候也是没做任何修改但是给我过了,就因为这样所以没去做修改,可能抱有一丝侥幸吧就又提交了两三次并且录了视频并且发了邮件发现还是RBL。最后还是做修改吧,万一过了呢 - - 下面附上本人自己针对AFN3.0做的修改吧!
1.还是在AFNetworkReachabilityManager .h文件和.m文件中做修改
2. .h文件中修改
3. .m文件中相应的修改
结果今天早上一来上班看到等待开发人员发布,心情大悦总算是解决了一个问题吧!下面附上代码需要的童鞋 C+c
.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);
//
// return manager;
//}
/**
* 修改后
*/
+ (instancetype)managerForAddress:(const struct sockaddr_in6*)address {
SCNetworkReachabilityRef reachability =SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)address);
AFNetworkReachabilityManager *manager = [[self alloc] initWithReachability:reachability];
CFRelease(reachability);
return manager;
}
网友评论