行为简单地通过这行代码在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
模块。
模块化是通过使用CocoaPods subspecs来实现的。以进口AFNetworking
和NSURLSession
模块,你就只能做这样的事情
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'
pod 'AFNetworking/NSURLSession', '~> 2.0'
您仍然可以定位到iOS 6,但你不会得到不兼容的子模块,为的CocoaPods文档中指定。
subspec可以限制父规范的平台。在这种情况下,只有当podfile的目标支持它时,才会由父规范继承。
你是如何导入框架的?你在用CocoaPods吗? –
我其实只是将AFNetworking文件夹拖入我的项目,就像它在这里http://mobile.tutsplus.com/tutorials/iphone/ios-sdk_afnetworking/ –
...你是否从存储库下载AFNetworking,或从教程网站上的链接? – lxt