ios - 我是否需要替换 NSURLConnection 以实现对仅 IPv6 服务的强制支持?

标签 ios ios9 nsurlconnection ipv6

由于 Apple 要求提交审核的应用程序必须从 2016 年 6 月 1 日起支持纯 IPv6 网络,因此我正在检查是否需要替换应用程序中的某些 API/库。但是我对网络和一些相关方面了解不够,因此我无法对此有一个明确的答案,想寻求帮助。

关于文件Supporting IPv6 DNS64/NAT64 Networks由 Apple 提供,它指出应用程序应该没问题,并且在以下情况下无需执行更新:

you’re writing a client-side app using high-level networking APIs such as NSURLSession and the CFNetwork frameworks and you connect by name

据此,我将其作为 2 个标准:

  1. 使用 NSURLSession 或 CFNetwork
  2. 按名字连接

所以这里的问题是:

  1. 据我所知,NSURLConnection 是基于 CFNetwork 的,这是否意味着如果我的应用程序使用 NSURLConnection,我也会没事? (我看到 this image in the above document 中也提到了 NSURLConnection,但我还是不太确定这一点,因为 NSURLConnection 有点老了?而且我似乎也找不到提到 IPv4 和 IPv6 支持的文档。)

  2. 按照“按名称调用”的标准,这是否意味着无论我使用 NSURLSession 还是 NSURLConnection,如果我碰巧通过 IPv4 地址调用或访问某些资源/API,就会发生不好的事情? (我做了一些研究,根据我的理解,像 iOS 9+ 的 iOS 设备这样的客户端将始终使用合成的 IPv6 地址来访问 IPv4 服务器,因此如果我通过 IPv4 地址调用客户端将无法访问资源?)

感谢您的帮助!

最佳答案

  1. 可能会没事的。但您可以通过连接到由您的 Mac 创建的 NAT64 网络来自行测试它,看看您的应用是否正常工作。
  2. 如果您在 iOS 9.2+ 中使用更高级别的 API,那么名称和 IPv4 字面量都可以使用。

关于ios - 我是否需要替换 NSURLConnection 以实现对仅 IPv6 服务的强制支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067619/

相关文章:

ios - ios 4 中的导航栏自定义在 ios5 中不起作用

ios - 在 iOS 9 中从键盘隐藏剪切/粘贴面板

iphone - 使用委托(delegate)时处理超时的 NSURLRequest

ios - 为什么 didReceiveData 函数不起作用

ios - 推送到 TableView Controller 后看不到 View Controller 内容

iOS - 两个应用程序目标,共享应用内购买

ios - 不显示电影,出现黑屏

sprite-kit - 获取 SKCameraNode 以关注英雄 Spritenode

ios - 使用自定义呈现 Controller 时保留原始状态栏外观

ios - 调用 HTTPS Soap 服务时出现 NSURLConnection 错误