无法获得用户的性别:在'NSDictionary <fbgraphuser> *'</fbgraphuser>类型的对象上找不到属性'gender'

时间:2012-11-04 15:52:17

标签: ios ios6 facebook-ios-sdk fb-graph

这是我的代码,用于获取代表用户Graph的整个字典:

 if (FBSession.activeSession.isOpen) {
        [[FBRequest requestForMe] startWithCompletionHandler:
         ^(FBRequestConnection *connection,
           NSDictionary<FBGraphUser> *user,
           NSError *error) {
             if (!error) {
                 NSLog(@"%@",user);//Displayed with the gender
                 NSLog(@"%@",user.name);//Name only displayed
                 NSLog(@"%@",user.gender);//Build error
             }
         }];
    }

我很想知道性别数据有什么问题,以及为什么它没有在字典中找到,实际上,我收到了构建错误:

property 'gender' not found on object of type 'NSDictionary<FBGraphUser> *'

2 个答案:

答案 0 :(得分:9)

您可以使用[user objectForKey:@"gender"];

答案 1 :(得分:7)

Facebook并未发送性别以回应“requestForMe”。 为了获得性别发送请求,请执行以下操作:

NSDictionary* params = [NSDictionary dictionaryWithObject:@"id,gender,name, whatever you like" forKey:@"fields"];

[[FBRequest requestWithGraphPath:[NSString stringWithFormat:"%d",myUserId] parameters:params HTTPMethod:nil] startWithCompletionHandler:...

我不确定,但我认为您也可以将图形路径设置为@“me”而不是用户ID。