18
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 2.0中发送请求的推荐方式。GET我想获取 json 中特定键的值,所以我想使用responseObjectas NSDictionary。这就是我正在尝试的:

NSError *jsonError = nil;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObject options:kNilOptions error:&jsonError];

它没有用:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary bytes]: unrecognized selector sent to instance 0xa048120'

如何获取特定键的值responseObject

4

2 回答 2

31

默认情况下,AFHTTPRequestOperationManager设置responseSerializer为一个AFJSONResponseSerializer实例,因此responseObject您解析的 JSON 已经是(在您的情况下,这将是NSDictionary根据您所说的)。

然后,就像使用字典一样使用它:

NSString *value = responseObject[@"someKey"];
于 2013-09-30T04:59:02.063 回答
5

响应对象已经是字典了!AFNetworking 确实为您处理了这些问题。

于 2013-09-30T04:59:15.477 回答