将facebook共同朋友保存到数组或字典

时间:2015-02-08 22:35:58

标签: objective-c facebook-graph-api nsmutablearray nsmutabledictionary

这可能是一个非常新手的问题,我很尴尬地问,但是我浪费了很多时间试图解决这个问题。

我关注了facebook的documentation,现在可以成功找回互赠的朋友。问题是,我无法将它们保存到数组或字典中。我的目标是保存这些值,以便我可以提供共同的朋友提要。

这是facebook的结果

2015-02-08 14:23:41.747 Madada[1989:500881] RESULT OF FB {
     context =     {
       "mutual_friends" =         {
         data =             (
                            {
                id = 341355692798276;
                name = "name";
            },
                            {
                id = 1600005380218938;
                name = "name";
            }
        );
        paging =             {
            cursors =                 {
                after = "MTYwMDAwNTM4MDIxODkzNA==";
                before = MzQxMzU1NjkyNzM4Njgz;
            };
        };
        summary =             {
            "total_count" = 3;
        };
    };
};
id = 1380880992219300;

}

这是我的ios代码

NSNumber *total = result[@"context"][@"mutual_friends"][@"summary"][@"total_count"];
                                  NSLog(@"TOTAL FRIENDS %@", total);
                                  for(int i=0;i<[result[@"context"][@"mutual_friends"][@"data"] count];i++)
                                  {
                                      [self.mutualFriends addObject:result[@"context"][@"mutual_friends"][@"data"]];
                                      NSLog(@"MUTUAL FRIENDS ARRAY : %@", self.mutualFriends);
                                  }

我试过搞乱这个,但是对于每个检索到的用户,数组的结果都是NULL。当我在最后添加[@“id”]时,它给了我这条消息。

  

无法识别的选择器发送到实例0x178c60c0

我几乎可以肯定这只是一个基本的语法问题,正如我之前所说的那样,我很尴尬不得不问,但是事先感谢这个令人敬畏的社区!

1 个答案:

答案 0 :(得分:1)

您可能有两个问题。第一个数组为NULL。在开始向其添加对象之前,我会确保您正在使用NSMutableArray。

self.mutualFriends = [[NSMutableArray alloc]init];

第二个问题是你无法直接获取id,因为你正在迭代数组并且需要首先从数组中获取字典。请参阅示例中的friendData。

NSNumber *total = result[@"context"][@"mutual_friends"][@"summary"][@"total_count"];
NSLog(@"TOTAL FRIENDS %@", total);

for(int i=0;i<[result[@"context"][@"mutual_friends"][@"data"] count];i++)
{
    NSDictionary *friendData = result[@"context"][@"mutual_friends"][@"data"][i];

    [self.mutualFriends addObject:friendData[@"id"]];
    NSLog(@"MUTUAL FRIENDS ARRAY : %@", self.mutualFriends);
}

result[@"thisThing][@"otherThing][@"evenMoreStuff]也很容易迷路。只是一些建议,我会避免这样做,并在结果中创建一个本地NSDictionary或NSArray。

希望这有助于解决您的问题。