pods objective how ios iphone objective-c nsdictionary afnetworking-2

ios - objective - pod install xcode



AFNetworking 2.0-use responseObject como NSDictionary (2)

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); }];

Esta es la forma recomendada de enviar una solicitud GET en AFNetworking 2.0. Quiero obtener el valor de una clave específica en el json, así que quiero usar responseObject como NSDictionary . esto es lo que estaba tratando

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

no funciono

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

¿Cómo puedo obtener el valor de una clave específica en responseObject ?


¡El objeto de respuesta ya es un diccionario! AFNetworking se encargó de eso por ti.


De forma predeterminada, AFHTTPRequestOperationManager establece responseSerializer en una instancia de AFJSONResponseSerializer , por lo que responseObject ya es su JSON analizado (en su caso, será un NSDictionary según lo que haya dicho).

Entonces, solo úsalo como usarías un diccionario:

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