我已经为一个项目启动了 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 给出“用户名:(空)”
我对 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 给出了正确的变量,但后来尝试在此函数之外访问它导致崩溃)我只能假设我没有正确存储信息。
有人可以给我一些关于我做错了什么的指示吗?