该行为简单地由这行代码解释AFURLSessionManager.h
#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090)
AFURLSessionManager
使用NSURLSession
,从 iOS 7(和 OSX 10.9)开始可用。
如果您的目标是 iOS 6,AFURLSessionManager
则无法使用,并且在编译时将其删除。这就是你得到错误的原因。
将 iOS 7 设置为最小部署目标将修复编译错误,即使它可能不符合您的需要。
也就是说,我的建议是使用 CocoaPods 来管理第三方依赖项,例如AFNetworking
.
AFNetworking 2.0
是一个模块化框架,这意味着您可以根据需要选择要使用的模块。核心支持iOS 6,但有些模块只支持iOS 7,比如所属的NSURLSession
模块AFURLSessionManager
。
模块化是通过使用CocoaPods 子规范来实现的。为了导入AFNetworking
和NSURLSession
模块,您只需要执行类似的操作
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'
pod 'AFNetworking/NSURLSession', '~> 2.0'
您仍然可以以 iOS 6 为目标,但您不会得到不兼容的子模块,如 CocoaPods 文档中所述。
子规范可以限制父规范的平台。在这种情况下,只有当 podfile 的目标支持它时,它才会被父规范继承。