12

AFNetworking 2.0 于上周发布。但我发现 AFNetworking 2.0 有不同的要求。

README.md告诉它需要 iOS 7.0 或更高版本,而AFNetworking 2.0 迁移指南告诉它需要 iOS 6.0 及更高版本。

AFNetworking 2.0 是否支持 iOS 6.0?

4

5 回答 5

26

根据CocoaPods podspec,您可以简单地使用 AFN 2.0 但不包含NSURLSession相关文件。

例如,如果您使用 CocoaPods(如果您不使用,您真的应该考虑这样做,这太棒了!),只需在您的 Podfile 上使用它即可获得没有 -relatedNSURLSession功能的 AFN 2.0:

pod 'AFNetworking', '~> 2.0'

This will only get the "Core" subspec, which supports the deployment target 6.0 for iOS (s.ios.deployment_target = '6.0' in the podspec) and does not integrate NSURLSession-related files. So this will be compatible with your project using an iOS6 or greater deployment target.


If you later wish to drop the 6.0 support on your project and take advantage of the NSURLSession capabilities, you can add the NSURLSession subspec to your Podfile:

pod 'AFNetworking', '~> 2.0' # Core, without NSURLSession, compatible with iOS6
pod 'AFNetworking/NSURLSession', '~> 2.0' # Add NSURLSession features, only compatible with iOS7

You can see in the podspec that adding the NSURLSession subspec will add the s.ios.deployment_target = '7.0' requirement as a consequence, requiring your project's deployment target to be 7.0 or greater too of course, as you could expect.


[编辑] 自从我的回答以来,Mattt 更新了它的代码和 podspec,这样NSURLSession即使针对 iOS6,你也可以获得子规范。在它的 github 上查看这个 pull request (以及其他相关的)。因此,现在您NSURLSession甚至可以为您的 iOS6-min 项目获取子规范,并且仅在运行时有条件地调用它们if ([NSURLSession class])是正确的。

于 2013-09-27T02:46:09.837 回答
4

iOS 6 支持 AFNetworking 2.0。我的问题是我之前安装它的平台设置为 iOS 7。我通过这样做修复了它:

  1. 删除了我的所有内容Podfile
  2. Ran pod install,它删除了我所有的 pod。
  3. 将所有内容添加回 my Podfile, 与platform :ios, '6.0'

而且我仍然可以毫无问题地使用我现有的 AFNetworking 代码。

于 2014-06-29T23:23:23.693 回答
0

我根本没有使用 pod。相反,我下载了它并将文件拖到项目中,然后也遇到了这个问题。为了修复它,我只是从项目中删除了AFURLSessionManagerAFHTTPSessionManager文件。然后它起作用了。

于 2015-04-21T08:21:14.983 回答
0

是的,它确实支持iOS6,除了NSURLSessionTask部分,它们只是iOS7。

我也很困惑,但在从 1.x -> 2.0 过渡期间,似乎并非所有文档都已更新。他们现在已经有了,它在我支持 iOS6 的项目中运行良好。

于 2013-09-29T13:24:30.387 回答
0

您可以使用 AFNetworking 2.0。只需确保在使用可可豆荚安装时将部署目标设置为 6.0。当我的部署目标为 7.0 时,我最初安装了 AFNetworking。因此必须将其从可可豆荚中删除,并将部署目标设置为 6.0 和然后再次安装。

于 2014-02-27T04:53:42.910 回答