使用NSArray和NSDictionary来存储Facebook好友以便以后在应用程序中使用

时间:2013-05-20 09:16:24

标签: facebook uitableview nsarray nsdictionary

我正在尝试使用NSArrayNSDictionary来存储用户的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"}, .... 

我现在如何在单元格中访问这些单独的词典?另外我需要添加到上面的内容,以便字典的顺序按字母顺序保存到整个数组中?

1 个答案:

答案 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数组检查如下: -

https://github.com/elc/ICB_SectionedTableViewDemo