我正在尝试使用NSArray
和NSDictionary
来存储用户的Facebook好友信息。稍后将在表格视图中使用该数据。
理想情况下,如果可行的话,我希望按字母顺序存储信息。
我已成功建立与Facebook的连接并检索结果,如下所示:
(
{
"first_name" = Bob;
id = 999999999;
"last_name" = Geldof;
name = "Bob Geldof";
username = "bob.geldof";
},
{
"first_name" = Someone;
id = 111111111;
"last_name" = Else;
name = "Someone Else";
username = "someone.else.2";
},
我认为这是一个NSArray,每个用户都有一个Dictionary。
我想要实现的是保存相同格式的数据。我想保存用户的id和全名(name)对象,但不确定这样做的正确方法是什么?我是否需要为每个用户创建一个字典并添加该信息?
NSArray *data = [result objectForKey:@"data"];
NSLog(@"%@",data);
NSMutableArray *facebookIds = [[NSMutableArray alloc] initWithCapacity:data.count];
for (NSDictionary *friendData in data) {
NSDictionary *individualFriendInfo = [[NSMutableDictionary alloc] initWithObjects:[[NSArray alloc] initWithObjects:[friendData objectForKey:@"id"],[friendData objectForKey:@"name"], nil ] forKeys: [[NSArray alloc] initWithObjects:@"id", @"name", nil ]];
[facebookIds addObject:individualFriendInfo];
}
例如上面的内容,保存以下内容:
[{"id":"999999999","name":"Bob Geldof"},{"id":"111111111","name":"Someone Else"}, ....
我现在如何在单元格中访问这些单独的词典?另外我需要添加到上面的内容,以便字典的顺序按字母顺序保存到整个数组中?
答案 0 :(得分:1)
您必须使用NSUserDefaults
存储NSMutableArray。之后你可以将数组存储到NSUserDefaults
,如: -
[[NSUserDefaults standardUserDefaults]setObject:yourArray forKey:@"MyFBInfo"];
你可以得到这样的数组: -
NSMutableArray *facebookIds = [[NSMutableArray alloc]init];
facebookIds=[[NSUserDefaults standardUserDefaults]objectForKey:@"MyFBInfo"];
你可以在CellforRowAtIndex:
使用如下字典:
NSMutableDictionary *d = (NSMutableDictionary *) [facebookIds.ArrInfoListAlldata objectAtIndex:indexPath.row];
cell.textLabel.text=[d valueForKey:@"name"];
按字母顺序排序A到Z数组检查如下: -