划分字典的NSMutableArray

时间:2015-07-13 14:59:48

标签: ios objective-c iphone uitableview

我有下面的字典数组,我需要根据'create_time'作为UITableView的section-title在数组下面进行分区。并相应地加载到tableview中。请帮助如何制作带格式的格式化数组。

 ({
        content = hellow;
        "create_time" = 1436797644;
        "from_id" = 290;
        "from_name" = waterfall;
        "group_id" = "<null>";
        id = 1;
        "send_time" = 1436797644;
        "session_id" = 1436797620;
        "state_id" = 0;
        "to_id" = 289;
        "to_name" = prof2;
        "type_id" = 1;
    } );

以下是关于我所做的代码的一些小事:

arr_CompleteChat=[[DataBaseController getInstance] readChat:userID withFromId:friendID withLimit:20];

 SqlStatementt =[NSString stringWithFormat:@"SELECT * FROM MessageList where (from_id=%ld and to_id=%ld) OR  (from_id=%ld and to_id=%ld) order by create_time DESC LIMIT %d",(long)[to_id integerValue],(long)[from_id integerValue],mode,(long)[from_id integerValue],(long)[to_id integerValue],limit];

关于表视图加载:

         -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
         {
          return [arr_CompleteChat count];
         }
         -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
        {
           return 1;
         }

      -(UITableViewCell *)tableView:(UITableView *)tableView      
cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
 if([[[arr_CompleteChat objectAtIndex:indexPath.row]valueForKey:@"from_id"] isEqualToString:[[NSUserDefaults standardUserDefaults] valueForKey:@"MY_ID"]])
{
    static NSString *CellIdentifier = @"CellIdentifier";
    SendMsgBubbleCell *temp=(SendMsgBubbleCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (temp == nil)
    {
        temp = [[SendMsgBubbleCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"SendMsgBubbleCell" owner:temp options:nil];
        [temp loaditemwithMessageArray:[arr_CompleteChat objectAtIndex:indexPath.row]];

        temp=[topLevelObjects objectAtIndex:0];
    }


    return temp;
}
else
{
    static NSString *CellIdentifier = @"CellIdentifier";
    ReciveMsgBubbleCell *temp=(ReciveMsgBubbleCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (temp == nil)
    {
        temp = [[ReciveMsgBubbleCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ReciveMsgBubbleCell" owner:temp options:nil];
        [temp loaditemwithMessageArray:[arr_CompleteChat objectAtIndex:indexPath.row]  ];
        temp=[topLevelObjects objectAtIndex:0];
    }
    return temp;
    }
    }

现在我希望在UItableview的部分中转换整个arr_completechat。我想它足以理解它的代码片段。

1 个答案:

答案 0 :(得分:0)

遍历数组并获取键create_time的值。如果表视图中已存在具有该值的节,则只需向其添加单元格即可。否则,您首先必须创建一个新部分,然后添加单元格。

这几乎是伪代码。一旦了解了正确的使用方法,就可以轻松实现您想要的效果。