0

私はこのFacebookリクエストを行います:

SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                                    requestMethod:SLRequestMethodGET
                                                              URL:[NSURL URLWithString:@"https://graph.facebook.com/fql"]
                                                       parameters:[NSDictionary dictionaryWithObject:@"SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())" forKey:@"q"]];

[facebookRequest setAccount:_facebookAccount];

[facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) {
     if(!error){
           id json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
           NSLog(@"%@", [json class]); 
           //NSCFDictionary. How can i get the data that's inside this?
     }else{
           NSLog(@"error fb");
            }
     }];

NSCFDictionary 内のデータを取得する方法について何か考えはありますか? 試してみまし[json valueforKey...]たが何もありません

4

1 に答える 1

3

NSDictionary の-objectForKey:メソッドを使用します。

id json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
if ([json isKindOfClass:[NSDictionary class]]) {
    NSDictionary *dict = (NSDictionary*)json;
    for (NSString *key in dict) {
        id object = [dict objectForKey:key];
        NSLog(@"The object for key \"%@\" is: %@", key, object);
    }
}

ちなみに、NSCFDictionary を NSDictionary のように扱えることを理解するのにそれほど時間はかかりません。これを説明する SO の質問が 1 つあります。NSCFDictionary とは何ですか? それがわかれば、NSDictionary のドキュメントを参照して、対処方法を簡単に理解できます。

于 2012-11-09T01:14:34.143 に答える