如何sortingdate对象的NSMutableArray

我正在做一些小的工作,在NSMutableArray中sortingdatestring,我从sqlite数据库获取数组。 如果你打印的数组是这样显示的

datestring为(“2011-05-01”,“2011-02-01”,“2012-01-08”,“2012-05-08”,“2010-01-09)

我想按升序显示date。 请帮助我的家伙…..我是新手objc ..

首先,您应该将所有的datestring(这是NSString )对象转换为NSDate对象,然后对这些date对象进行sorting。

我相信你有dateArray包含所有这些string。

 NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO]; NSArray *descriptors = [NSArray arrayWithObject:descriptor]; NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors]; 

要么

 NSArray *reverseOrderUsingComparator = [dateArray sortedArrayUsingComparator: ^(id obj1, id obj2) { return [obj2 compare:obj1]; }]; 

如果您的date真的是YYYY-mm-dd格式的string,就像在您的问题中一样,那么这将按升序对它们进行sorting:

 [arrayOfDates sortUsingSelector:@selector(compare:)]; 

如果你的date实际上是NSDate对象,那也是可行的。

如果你想创build一个数组的sorting副本:

 NSArray *sortedArray = [arrayOfDates sortedArrayUsingSelector:@selector(compare:)]; 

一般来说,sorting应该由数据库完成。 sqlite3确实支持顺序 。