AFNetworking 2.0 – 使用responseObject作为NSDictionary
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中特定键的值,所以我想使用responseObject
作为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
中的特定键的值?
默认情况下, AFHTTPRequestOperationManager
将responseSerializer
设置为一个AFJSONResponseSerializer
实例,所以responseObject
已经是你parsing的JSON(在你的情况下,根据你所说的,它将是一个NSDictionary
)。
然后,就像使用字典一样使用它:
NSString *value = responseObject[@"someKey"];
响应对象已经是一个字典! AFNetworking为您处理。