0

次のコードを使用して、グラフ 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;

しかし、それはうまくいかないようです。私は何を間違っていますか?後で使用するために通話からの情報を保存するにはどうすればよいですか?

4

2 に答える 2

0

ごめん。私の間違い。正しい方法は - (void)request:(FBRequest *)request didLoad:(id)result


request
[facebook requestWithGraphPath:@"me/friends" andDelegate:self];

response
- (void)request:(FBRequest *)request didLoad:(id)result {
//これは 1 つの要素 (key="data") を持つ辞書です。これは辞書の配列であり、それぞれに "name" と"id" keys
items = [[(NSDictionary *)result objectForKey:@"data"]retain];
for (int i=0; i<[items count]; i++) {
NSDictionary *friend = [items objectAtIndex:i];
long long fbid = [[friend objectForKey:@"id"]longLongValue];
NSString *name = [friend objectForKey:@"name"];
NSLog(@"id: %lld - 名前: %@", fbid, name);
}
}

于 2012-11-19T15:44:59.900 に答える
0

you can use method from facebook delegate such as

  • (void)request:(FBRequest *)request didReceiveResponse:(NSURLResponse *)response {}
于 2012-11-19T14:28:05.100 に答える