如何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确实支持顺序 。