6

我正在使用 cocoapods 安装 AFNetworking 和 AFOAuth2Client。问题是它无法导入头文件 AFJSONREquestOperation。我不知道这种依赖在哪里。它是 AFNetworking 的另一个 pod 或扩展吗?

4

4 回答 4

3

这取决于您安装了 AFNetworking 2.x 版本,但 AFOAuth2 使用的是 1.x 版本(最新的 1.x 是 1.3.3)

如果您使用 Cocoapods,只需写入 pod 文件 pod 'AFNetworking', '1.3.3' 然后运行“pod install”

于 2013-11-06T18:06:18.633 回答
3

@LIAL 的回答是正确的——截至目前,AFOAuth2Client 与 AFNetworking 2.0 不兼容。有一个开放的拉取请求https://github.com/AFNetworking/AFOAuth2Client/pull/55应该使 AFOAuth2Client 与 AFNetworking 2.0 一起工作。

您可以通过将 Podfile for AFOAuth2Client 行修改为如下所示来分叉mlwelles 的回购或使用https://github.com/mlwelles/AFOAuth2Client.git :

pod 'AFOAuth2Client', :git => 'git://github.com/mlwelles/AFOAuth2Client.git'
于 2013-11-07T17:35:18.167 回答
1

尝试像这样导入它:

#import <AFNetworking/AFJSONRequestOperation.h>

如果你不能那样做,请确保你使用的是 Xcode 5。使用 Xcode 4.6.3 时发生在我身上。

于 2013-10-30T09:15:52.480 回答
0

基于 AFHTTPRequestOperationManager 的代码

AFNetworking 2.x

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

AFNetworking 3.x

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

基于 AFHTTPRequestOperation 的代码

AFNetworking 2.x

NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
op.responseSerializer = [AFJSONResponseSerializer serializer];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
[[NSOperationQueue mainQueue] addOperation:op];

AFNetworking 3.x

NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:URL.absoluteString parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

这个答案对使用 AFNetworking 2.x 和 3.x 的用户都有帮助 谢谢。

于 2017-12-30T08:14:30.413 回答