我有一个日期在里面的对象数组。 现在我需要在此日期之前将对象分组到UITableView中。 例如:
0-{10-14; Obj1};
1-{10-14; Obj2};
2-{10-15; Obj3};
3-{10-15; Obj4};
我需要像我这样在我的UITableView上查看它
10-14
0-{10-14; Obj1};
1-{10-14; Obj2};
10-15
2-{10-15; Obj3};
3-{10-15; Obj4};
要解决我接下来的事情;我用这段代码将我的数组拆分为NSDictationary:
NSMutableDictionary *preResult = [[NSMutableDictionary alloc] init];
for (ClientMessage *message in array) {
NSMutableArray *mArray = [preResult objectForKey:message.formattedDate];
if (mArray == nil) {
mArray = [[NSMutableArray alloc] init];
[preResult setObject: mArray forKey:message.formattedDate];
}
[mArray addObject:message];
}
我的表格视图显示了我想要的东西,但它显示的顺序错误; (我的数组按日期排序) 我知道我不能排序NSDictationary,在这种情况下,我如何在表视图中对我的值进行排序?或者是否有另一种方法可以在没有NSDictationary的情况下对我的值进行分组?
答案 0 :(得分:0)
一旦您使用所有值加载了字典,您就会想要对字典中的每个数组进行排序......
for (NSString *key in [preResult allKeys])
{
NSMutableArray *mArray = [preResult objectForKey:key];
// sort array to achieve the desired result
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"formattedDate" ascending:YES];
NSArray *sortedArray = [mArray sortedArrayUsingDescriptors:@[sortDescriptor]];
// reset newly sorted array for key inside the dictionary
[preResult sortedArray forKey:key];
}