AFNetworking 2.0 于上周发布。但我发现 AFNetworking 2.0 有不同的要求。
README.md告诉它需要 iOS 7.0 或更高版本,而AFNetworking 2.0 迁移指南告诉它需要 iOS 6.0 及更高版本。
AFNetworking 2.0 是否支持 iOS 6.0?
AFNetworking 2.0 于上周发布。但我发现 AFNetworking 2.0 有不同的要求。
README.md告诉它需要 iOS 7.0 或更高版本,而AFNetworking 2.0 迁移指南告诉它需要 iOS 6.0 及更高版本。
AFNetworking 2.0 是否支持 iOS 6.0?
根据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])
是正确的。
iOS 6 支持 AFNetworking 2.0。我的问题是我之前安装它的平台设置为 iOS 7。我通过这样做修复了它:
Podfile
pod install
,它删除了我所有的 pod。Podfile
, 与platform :ios, '6.0'
而且我仍然可以毫无问题地使用我现有的 AFNetworking 代码。
我根本没有使用 pod。相反,我下载了它并将文件拖到项目中,然后也遇到了这个问题。为了修复它,我只是从项目中删除了AFURLSessionManager
和AFHTTPSessionManager
文件。然后它起作用了。
是的,它确实支持iOS6,除了NSURLSessionTask
部分,它们只是iOS7。
我也很困惑,但在从 1.x -> 2.0 过渡期间,似乎并非所有文档都已更新。他们现在已经有了,它在我支持 iOS6 的项目中运行良好。
您可以使用 AFNetworking 2.0。只需确保在使用可可豆荚安装时将部署目标设置为 6.0。当我的部署目标为 7.0 时,我最初安装了 AFNetworking。因此必须将其从可可豆荚中删除,并将部署目标设置为 6.0 和然后再次安装。