首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTableColumn按NSDate排序

NSTableColumn按NSDate排序
EN

Stack Overflow用户
提问于 2013-10-31 05:51:56
回答 1查看 187关注 0票数 1

表中有一个列,列的日期为dd/MM/yy格式,条目在NSString中,现在单击列标题后,即排序描述符图标列应该得到排序升序或降序,这取决于排序描述符。目前,它的排序按数字顺序进行,例如

  1. 10/23/13
  2. 11/4/09
  3. 2006年2月5日

但我希望这些列应该按日期进行排序:

  1. 2006年2月5日
  2. 11/4/09
  3. 10/23/13

我写了以下代码

代码语言:javascript
复制
- (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方法。

EN

回答 1

Stack Overflow用户

发布于 2013-10-31 07:29:30

就像这样:-

代码语言:javascript
复制
NSArray *yourArr=[NSArray arrayWithObjects:@"10/23/13",@"11/4/09",@"5/2/06",nil];
NSDateFormatter *format=[[[NSDateFormatter alloc]init]autorelease];
[format setDateFormat:@"dd/mm/yy"];
NSMutableArray *arr2=[NSMutableArray array];
for (NSString *str in yourArr)
{
    [arr2 addObject:[format dateFromString:str]];
}
    NSLog(@"Before=%@",arr2);
[self.arr sortUsingSelector:@selector(compare:)];
    NSLog(@"After=%@",self.arr);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19699324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档