我有一个Facebook单身人士,并要求获得个人资料照片:

[[[FacebookScorer sharedInstance] facebook] requestWithGraphPath:@"me/picture?type=normal" andDelegate:self];

现在在facebook的委托方法didLoadRawResponce中,我实际上收到了个人资料图片并可以显示,但是在didLoad:(id)result方法中,结果为空!

我相信,一旦解析了结果,就会调用didLoad方法,那么为什么不从中得到任何回报呢?

我需要使用didLoad的原因是,我可以询问结果是否为isKindOfClass来查看其内容,而注销时也调用didLoadRawResponce,那么如何检查数据是什么?

- 编辑
我已经弄清楚了如何区分FBRequests,所以这不再是一个大问题,但是我仍然不明白为什么调用didLoad却没有任何结果。
即使使用此命令也会触发slog,但具有null
if (request == _profilePicRequest) {
    NSLog(@"result:%@",result);
}

最佳答案

这可以通过从请求中获取数据来解决:

- (void)request:(FBRequest *)request didLoad:(id)result{
result = request.responseText;

if ([result isKindOfClass:[NSData class]])
{
    ...
}

if ([result isKindOfClass:[NSDictionary class]])
{
    ...
}

不是最优雅的解决方案,我仍然不知道为什么结果为零。但这有效。

希望这可以帮助!

10-08 05:48