Facebook SDK FBGraphUser无法存储本地副本

时间:2013-03-20 12:18:06

标签: ios objective-c facebook facebook-graph-api

我已经为一个项目启动了Facebook集成,但我遇到了一个问题。我试图将登录用户存储为本地对象,以便稍后可以引用该信息,但我似乎无法保留信息。

以下是我获取用户数据的功能:

 if(_session.isOpen)
 {
    [FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session,
                                                      FBSessionState state,
                                                      NSError *error)
     {

         [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection,
                                                    NSDictionary<FBGraphUser> *user,
                                                    NSError *error)
          {
            if(!error)
            {
                NSLog(@"Username: %@",user.name);

                [_user initWithDictionary:user];
                NSLog(@"Username: %@",[_user objectForKey:@"name"]);

            }
            else
            {
                NSLog(@"Couldn't get user details!");

            }

          }];
     }];

}//endif

在这种情况下,NLog给出“Username:(null)”

我对ObjC和Facebook都很陌生,所以我不确定我做错了什么。另外,我尝试创建一个成员变量:

@property (strong, nonatomic) NSDictionary<FBGraphUser> *loggedInUser;

以前我存储用户的代码是

if(!error)
            {
                NSLog(@"Username: %@",user.name);

                _user = user;
                NSLog(@"Username: %@", _user.name);

            }
            else
            {
                NSLog(@"Couldn't get user details!");

            }

由于这些都没有起作用(第二个工作,因为第二个NSLog提供了正确的变量,但后来尝试在此函数之外访问它导致崩溃)我只能假设我没有正确存储信息。

有人能给我一些关于我做错的指示吗?

1 个答案:

答案 0 :(得分:0)

您需要打印user.username而不是user.name