[英]How to sort an array containing NSDates
Can you help me on sorting (ascending order) the array contains NSDate
. 您能帮我对包含
NSDate
的数组进行排序(升序)吗?
NSMutableArray *tempArray = [[NSMutableArray alloc]init];
[tempArray addObject: NSDate1];
[tempArray addObject: NSDate2];
[tempArray addObject: NSDate3];
[tempArray addObject: NSDate4];
由于NSDate
响应compare
,并且默认排序顺序是递增的,因此最简单的方法是
[tempArray sortUsingSelector:@selector(compare:)];
Use below code: 使用以下代码:
[your array sortUsingComparator:
^NSComparisonResult(id obj1, id obj2){
obj1 *o1 = (obj1*)obj1;
obj2 *o2 = (obj2*)obj2;
if (o1.personAge > 02.personAge) {
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}
]; ]。
NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"self.dueDate" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy"];
NSDate *date1 = [dateFormat dateFromString:obj1];
NSDate *date2 = [dateFormat dateFromString:obj2];
return [date1 compare:date2];
}];
Best way to do this,use sort descriptor. 最好的方法是使用排序描述符。
NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"self.dueDate" ascending:YES comparator:^NSComparisonResult(NSDate *dateObject1, NSDate *dateObject2) {
return [dateObject1 compare:dateObject2];
}];
[array1 sortUsingComparator: (NSComparator)^(NSString *key1, NSString *key2)
{
return [key2 compare: key1];
}
];
If you want array in ascending or descending order just change 如果要按升序或降序排列数组,只需更改
compare
相比
return [key1 compare: key2];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.