2012-05-04 24 views
1

我有一个Facebook独立的,并要求此获得资料图片:的Facebook SDK didLoad:结果=空

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

现在Facebook的委托方法didLoadRawResponce我居然收到资料图片,并且可以显示,但在didLoad:(id)结果方法结果为null!

我相信didLoad方法在结果解析后会被调用,那为什么我没有从它那里得到任何回报?

我需要使用didLoad的原因是,如果结果是KindOfClass以查看它是什么,而我注销时也调用了didLoadRawResponce,那么如何检查数据是什么?

- 编辑 我已经想出了如何区分FBRequests,所以这不再是一个很大的问题,但我仍然不明白为什么要调用LoadLoad但没有任何结果。 即使使用这给触发猛击,但空

if (request == _profilePicRequest) { 
    NSLog(@"result:%@",result); 
} 
+0

您是否尝试执行' - (void)请求:(FBRequest *)请求didFailWithError:(NSError *)错误;'并检查是否有一些错误发生? –

+0

是的,没有错误。 didLoad被调用,但结果为空。 – Darren

回答

2

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

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

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

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

不是最优雅的解决方案,而我还是不知道为什么结果是零。但它的工作。

希望这会有所帮助!