我有一个NSMutableArray命名记录,其中包含一些单个记录。所以结构就像:
知道我想在UITableView中显示它们。没有Sections:
可以正常工作- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
[...]
NSManagedObject *record = [self.records objectAtIndex:indexPath.row];
cell.recordNameLabel.text = [record valueForKey:@"name"];
return cell;
}
但是现在我想按时间戳值分区记录。所以我的想法是使用以下结构创建一个名为sorted Records的新NSMutableArray:
记录
Day(2013-09-15)
Day(2013-09-14)
Day(2013-09-12)
如何将记录分组/分离到我的排序结构?
感谢您的帮助。
答案 0 :(得分:2)
可能的解决方案之一是:
1)使用一种方法创建NSDate类别,例如day:
@interface NSDate(Day)
- (NSDate*) day;
@end
@implementation NSDate(Day)
- (NSDate*) day
{
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *comps = [[NSCalendar currentCalendar] components:unitFlags fromDate:self];
return [[NSCalendar currentCalendar] dateFromComponents:comps];
}
@end
2)将NSFetchedResultsController与sectionNameKeyPath - @"timestamp.day"
一起使用。
答案 1 :(得分:0)
如果"记录"是一个字典对象的NSMutableArray,带有字段" timestamp"在NSDate类型中,您可以使用NSSortDescriptor
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timestamp" ascending:FALSE];
[allVideos sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
*它是一个降序的数组。 ascending:TRUE
表示数组的升序!