首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >日期字符串或对象的排序NSArray

日期字符串或对象的排序NSArray
EN

Stack Overflow用户
提问于 2009-07-15 17:33:58
回答 8查看 82.9K关注 0票数 86

我有一个包含日期字符串(即NSString)NSArray,如下所示:“strings,21 May 09 19:10:09 -0700”

我需要按日期对NSArray进行排序。我考虑过首先将日期字符串转换为NSDate对象,但在如何按NSDate对象排序的问题上遇到了困难。

谢谢。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-07-15 21:12:54

将日期作为NSDate对象存储在NS(可变)数组中,然后使用[-[NSArray sortedArrayUsingSelector:](https://developer.apple.com/documentation/foundation/nsarray/1410025-sortedarrayusingselector?language=objc)或-[NSMutableArray sortUsingSelector:]并将dates作为参数传递。-[NSDate compare:]方法将为您以升序排列日期。这比创建NSSortDescriptor更简单,也比编写自己的比较函数简单得多。(NSDate对象知道如何相互比较,至少与我们希望通过自定义代码实现的效率一样高。)

票数 110
EN

Stack Overflow用户

发布于 2010-10-12 17:25:10

如果我有一个带有NSDate类型字段"beginDate“的对象的NSMutableArray,我使用的NSSortDescriptor如下所示:

代码语言:javascript
复制
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"beginDate" ascending:TRUE];
[myMutableArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
票数 115
EN

Stack Overflow用户

发布于 2012-11-11 02:29:48

您还可以使用类似以下内容:

代码语言:javascript
复制
//Sort the array of items by  date
    [self.items sortUsingComparator:^NSComparisonResult(id obj1, id obj2){
        return [obj2.date compare:obj1.date];
    }];

,但这确实假设日期存储为 NString,而不是,这应该不会有任何问题。最好,我还建议以原始格式存储数据。使得在这样的情况下更容易操作。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1132806

复制
相关文章

相似问题

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