我有下面的字典数组,我需要根据'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。我想它足以理解它的代码片段。
答案 0 :(得分:0)
遍历数组并获取键create_time
的值。如果表视图中已存在具有该值的节,则只需向其添加单元格即可。否则,您首先必须创建一个新部分,然后添加单元格。
这几乎是伪代码。一旦了解了正确的使用方法,就可以轻松实现您想要的效果。