1

Facebookのシングルトンを持っていて、プロフィール写真を取得するためにこれをリクエストします。

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

FacebookのデリゲートメソッドdidLoadRawResponceでは、実際にプロフィール写真を受け取って表示できますが、didLoad:(id)resultメソッドでは結果がnullになります。

結果が解析されるとdidLoadメソッドが呼び出されると思いますが、なぜそれから何も返されないのですか?

didLoadを使用する必要がある理由は、結果がKindOfClassであるかどうかを確認するために尋ねることができるのに対し、ログアウトするとdidLoadRawResponceも呼び出されるので、データが何であるかを確認するにはどうすればよいですか?

--編集FBRequestを区別する方法を理解したので、これはもはやそれほど大きな問題ではありませんが、didLoadが呼び出されている理由を理解することはできませんが、結果はありません。これを使用しても、トリガーにslogが与えられますが、null

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

1 に答える 1

2

これは、リクエストからデータを取得することで解決できます。

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

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

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

最もエレガントなソリューションではありません。なぜ結果が nil なのか、まだわかりません。しかし、それは機能します。

お役に立てれば!

于 2012-05-10T06:41:36.600 に答える