我正在尝试获取简单的当前用户信息并将其作为函数的参数返回。从阅读中我了解到我需要使用 startForMeWithCompletionHandler 方法。伟大的。
在通过 Facebook 进行身份验证后,我尝试通过调用 startForMeWithCompletionHandler 方法来调用 API。但是,该块已执行但它从未作为方法返回参数返回。为什么?
这是我正在调用的方法:
-(id<FBGraphUser>) getLoggedInUserdata
{
__block id<FBGraphUser> userInfo;
if(FBSession.activeSession.isOpen)
{
NSLog(@"Session is open");
}
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> userInfoResult, NSError *error) {
if(FBSession.activeSession.isOpen)
{
if(!error)
{
userInfo = userInfoResult;
}
}
}];
return userInfo;
}
从 MainViewController :
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.title = @"Facebook Sample app";
httpClient = [[FBCHttpClient alloc] init];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if(FBSession.activeSession.isOpen)
{
id<FBGraphUser> fbGraphUser = httpClient.getLoggedInUserdata;
NSLog(@"%@",[fbGraphUser name]);
}
}
在我成功对 Facebook 进行身份验证并且 FBSession.activeSession.isOpen 为 true 后,我调用它。
我究竟做错了什么?