我正在使用cocoapods来安装AFNetworking和AFOAuth2Client。问题是它无法导入头文件AFJSONREquestOperation。我不知道这种依赖在哪里。它是AFNetworking的另一个吊舱或扩展吗?
答案 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 感谢。