次のコードを使用して、グラフAPIにリクエストを送信し、ラベルに表示します
[FBRequestConnection startWithGraphPath:@"40123148903?fields=picture" completionHandler:^(FBRequestConnection *connection, id<FBGraphObject> result, NSError *error)
{
if(!error)
{
self.tryLabal.text = [[[result objectForKey:@"picture"] objectForKey:@"data"]objectForKey:@"url"];
}
}
];
問題は、ブロック内のグラフオブジェクトしか使用できないことです。返された結果を保持したいと思います。
idプロパティを宣言し、結果IDを割り当ててみました
self.tryGraphObject = result;
ここのメンバーのおかげで、もう少し情報があります。iosfacebook sdk 3.0では、返信が戻ってきたときに呼び出されたfacebookデリゲートを使用したグラフAPI呼び出しの結果を処理しました。3.1では、ロジックが変更され、各リクエストに「完了ハンドラー」と呼ばれるブロックが付属し、結果を処理できるようになりました。問題は、何らかの理由で結果を保存できないため、結果を保存してさらに使用できないことです。
編集:私が間違っていたことが判明しました、問題は異なります。コードを分解したところ、プロパティが設定されていないと思っていましたが、設定されていました。ビューがロードされた直後。基本的に、Facebookからの応答を待っている間、コードを実行し続けました。つまり、値が返される前にビューが読み込まれるため、空のプロパティに基づいてビューが表示されます。私に何ができる?