我正在尝试从ASIHttpRequest转换为AFNetworking但我似乎在我班上的以下行中使用了“未声明的标识符AFURLSessionManager”错误。
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
我在标题中加入了以下内容:
#import "AFNetworking.h"
#import "AFURLSessionManager.h"
它必须是非常明显的东西,但现在脑屁很难。
答案 0 :(得分:5)
#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 subspecs实现模块化。要导入AFNetworking
和NSURLSession
模块,您只需执行类似
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.0'
pod 'AFNetworking/NSURLSession', '~> 2.0'
你仍然可以定位iOS 6,但你不会得到不兼容的子模块,如CocoaPods文档中所指定的那样。
子规范可以限制父规范的平台。在这种情况下,只有当podfile的目标支持它时,它才会被父规范继承。