AFNetworking包括标题

Ray*_*y Y 5 objective-c afnetworking-2

我正在尝试从ASIHttpRequest转换为AFNetworking,但我似乎在我班级的以下行中有"使用未声明的标识符AFURLSessionManager"错误.

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
Run Code Online (Sandbox Code Playgroud)

我在标题中包含以下内容:

#import "AFNetworking.h"
#import "AFURLSessionManager.h"
Run Code Online (Sandbox Code Playgroud)

它必须是非常明显的东西,但现在脑屁不好.

Gab*_*lla 5

这行代码只是通过这行代码来解释 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)
Run Code Online (Sandbox Code Playgroud)

AFURLSessionManager使用NSURLSession,可从iOS 7(和OSX 10.9)上获得.

如果您的目标是iOS 6,AFURLSessionManager则无法使用它并且在编译时被删除.这就是你得到错误的原因.

将iOS 7设置为最小部署目标将修复编译错误,即使它可能不符合您的需要.


也就是说,我的建议是使用CocoaPods来管理第三方依赖项,例如AFNetworking.

AFNetworking 2.0是一个模块化框架,这意味着您可以根据需要选择要使用的模块.核心支持iOS 6,但有些模块仅支持iOS 7,例如属于的NSURLSession模块AFURLSessionManager.

通过使用CocoaPods亚种来实现模块化.为了导入AFNetworkingNSURLSession模块,你只需要做类似的事情

platform :ios, '7.0'

pod 'AFNetworking',              '~> 2.0'
pod 'AFNetworking/NSURLSession', '~> 2.0'
Run Code Online (Sandbox Code Playgroud)

你仍然可以针对iOS 6,但你不会得到不兼容的子模块,如CocoaPods文档中所指定的那样.

子规范可以限制父规范的平台.在这种情况下,仅当podfile的目标支持父规范时,它才会被父规范继承.