使用AFNetworking和AFOAuth2Client找不到文件AFJSONRequestOperation.h

时间:2013-10-29 18:54:41

标签: objective-c xcode cocoapods

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

4 个答案:

答案 0 :(得分:3)

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

如果你使用过Cocoapods,只需写入pod文件即可 pod'AFNetworking','1.3.3'而不是运行“pod install”

答案 1 :(得分:3)

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

您可以通过修改AFOAuth2Client行的Podfile来分叉mlwelles的repo或使用https://github.com/mlwelles/AFOAuth2Client.git

pod 'AFOAuth2Client', :git => 'git://github.com/mlwelles/AFOAuth2Client.git'

答案 2 :(得分:1)

尝试像这样导入:

#import <AFNetworking/AFJSONRequestOperation.h>

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

答案 3 :(得分: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&amp ;;的用户都很有帮助。 3.X 感谢。