我在表格中有一个列,dd/MM/yy
其中条目格式的日期在 中NSString
,现在单击列标题后,即排序描述符图标列应该根据排序描述符进行升序或降序排序。目前它按数字顺序排序,例如
- 2013 年 10 月 23 日
- 2009 年 11 月 4 日
- 06 年 5 月 2 日
但我希望列应该按日期排序:
- 06 年 5 月 2 日
- 2009 年 11 月 4 日
- 2013 年 10 月 23 日
我写了以下代码
- (void)tableView:(NSTableView *)tableView sortDescriptorsDidChange:(NSArray *)oldDescriptors
{
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
[fifiMainList sortUsingComparator:^NSComparisonResult(id a, id b) {
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat: @"yyyy MM dd"];
NSString *date1String = [a valueForKey:@"date"];
NSString *date2String = [b valueForKey:@"date"];
NSDate *date1 = [dateFormat dateFromString:date1String];
NSDate *date2 = [dateFormat dateFromString:date2String];
return [date1 compare:date2];
}];
}
但这对我不起作用。
我需要在sortDescriptorsDidChange
其他地方或其他地方编写排序代码吗?而且我的项目中也需要sortDescriptorsDidChange
方法。