2013-09-30 12 views
17
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); 
}]; 

olarak responseObject kullanın. Json'da belirli bir anahtarın değerini almak istiyorum, bu yüzden responseObject'u NSDictionary olarak kullanmak istiyorum.AFNetworking 2.0 - Bu AFNetworking 2.0 <code>GET</code> isteği göndermek için <a href="https://github.com/AFNetworking/AFNetworking#get-request" rel="noreferrer">recommended way</a> olan NSDictionary

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

işe yaramadı:

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

nasıl responseObject belirli bir anahtar değerini elde edebilirsiniz bu Deniyordum nedir? Bir AFJSONResponseSerializer örneğine Varsayılan olarak

cevap

30

, AFHTTPRequestOperationManager setleri responseSerializer, böylece responseObject zaten çözümlenen JSON olduğunu (sizin durumda, size söylediklerini göre bir NSDictionary olacağım).

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

AFNetworking kullanarak benzer bir sorun yaşadım. Ayrılmış bir JSON nesnesini geri alıyorum ve daha sonra kullanmak üzere bir dizide saklamanız gerekiyor. Ayrıştırılmış JSON dizeleri değer olarak bir sözlük mi? KVC'yi – noobsmcgoobs

5

tepki nesne zaten bir sözlük şudur: bir sözlük kullanmak istesem de

Sonra, onu kullanmayın! AFNetworking sizin için halletti.

+0

@Irfan 'a çevirmek için kullanamıyorum. Tipografinizin okumayı zorlaştırdığını düşünüyorum. – vikingosegundo

İlgili konular