0

AFNetwork を使用するのはこれが初めてで、コードを再利用できなかった ASIHTTP 要求を使用する前でしたが、とにかく、JSON 抽出に問題があり、その理由を理解できないようです。誰かができることを願っています光を見せて

これがコードです

[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];
[httpClient postPath:@"" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSString *responseStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
    NSDictionary *results = (NSDictionary *) responseStr;
    NSArray *pets = [results objectForKey:@"animals"];

そして、これはJSONです

   {
  "animals" : [
  {
     "type" : "cat",
     "weight" : "2lbs"      
},
  {
     "type" : "cat",
     "weight" : "15oz"
  }
   ]
}

どういうわけか、辞書から NSArray を解析する際に -[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x7355ab0' を常に取得していますが、これまで問題はありませんでした... 何か見逃しましたか? >、<

試行錯誤の末…………

私の質問に時間を割いていただき、ありがとうございました。うまくいかなかった理由はわかりませんが、NSJSONSerialization を使用すると、配列が完全に機能するようになりました。

[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];
[httpClient postPath:@"" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSError*error;
    NSDictionary *results = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];
    NSArray *pets = [results objectForKey:@"animals"];
4

2 に答える 2