保持图表api请求返回的值

时间:2012-11-19 12:21:10

标签: ios facebook sdk

我使用以下代码向图表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;

但这似乎不起作用。我究竟做错了什么?如何保存来自通话的信息​​以供日后使用?

2 个答案:

答案 0 :(得分:0)

你可以使用来自facebook委托的方法,如

  • (void)请求:(FBRequest *)请求didReceiveResponse:(NSURLResponse *)response {}

答案 1 :(得分:0)

对不起。我的错。正确的方法是 - (void)请求:(FBRequest *)请求didLoad:(id)结果

例如

请求
[facebook requestWithGraphPath:@“me / friends”andDelegate:self];

响应
- (void)请求:(FBRequest *)请求didLoad:(id)结果{
       //好吧所以这是一个包含一个元素的字典(key =“data”),这是一个字典数组,每个字典都带有“name”和“id”键
    items = [[(NSDictionary *)result objectForKey:@“data”] retain];
    for(int i = 0; i&lt; [items count]; i ++){
        NSDictionary * friend = [items objectAtIndex:i];
        long long fbid = [[friend objectForKey:@“id”] longLongValue];
        NSString * name = [friend objectForKey:@“name”];
        NSLog(@“id:%lld - Name:%@”,fbid,name);
    }
}