将 facebook 的共同好友保存到数组或字典中
saving facebook mutual friends to array or dictionary
这可能是一个非常新手的问题,我不好意思问,但我已经浪费了很多时间来弄清楚这个问题。
我关注了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"] 时,它给了我这条消息。
unrecognized selector sent to instance 0x178c60c0
我几乎可以肯定这只是一个基本的语法问题,正如我之前所说,我不好意思问,但提前感谢很棒的社区!
您可能有两个问题。第一个数组为 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。
希望对您有所帮助并解决您的问题。
这可能是一个非常新手的问题,我不好意思问,但我已经浪费了很多时间来弄清楚这个问题。
我关注了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"] 时,它给了我这条消息。
unrecognized selector sent to instance 0x178c60c0
我几乎可以肯定这只是一个基本的语法问题,正如我之前所说,我不好意思问,但提前感谢很棒的社区!
您可能有两个问题。第一个数组为 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。
希望对您有所帮助并解决您的问题。