AFNetworking 2.0 – utilise responseObject comme 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); }]; 

C'est la manière recommandée d'envoyer une requête GET dans AFNetworking 2.0. Je veux get la valeur d'une key spécifique dans le json, donc je veux utiliser responseObject comme NSDictionary . c'est ce que j'essayais:

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

ça n'a pas marché:

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

comment puis-je get la valeur d'une key spécifique dans responseObject ?

Par défaut, AFHTTPRequestOperationManager responseSerializer à une instance AFJSONResponseSerializer , donc responseObject est déjà votre JSON analysé (dans votre cas, ce sera un NSDictionary selon ce que vous avez dit).

Ensuite, utilisez-le comme si vous utilisiez un dictionary:

 NSSsortingng *value = responseObject[@"someKey"]; 

L'object de réponse est déjà un dictionary! AFNetworking a géré cela pour vous.