最近比较忙,忙着处理k线相关的各种需求,三个工程一起撸,好不酸爽~
排序,大家都用过,这里要介绍一个大多数人都不知道的方式,先买个关子——这种排序方式很牛。
它之所以牛,是因为它完美的且优雅的处理了包含潜在优先级条件的排序。
简单的几行代码就可以实现对数组按照条件优先级进行排序。
比起冒泡,比起block方便得不止一星半点。
栗子如下,一看便懂^o^
- (NSMutableArray *)sortArr:(NSMutableArray *)array
{
//如你所想,key这个参数是支持keyPath的
NSSortDescriptor * sortByTime = [NSSortDescriptor sortDescriptorWithKey:@"position.openTime"
ascending:YES];
NSSortDescriptor * sortById = [NSSortDescriptor sortDescriptorWithKey:@"position.id_p"
ascending:YES];
//这里的Descriptors参数是个数组,它之所以是数组,原因就在于这个数组的元素顺序,就是排序的优先级,元素下标越小则优先级越高
//如下,即sortByTime作为排序的第一优先级,如果sortByTime不能区分元素的先后,则根据sortById来进行进一步的区分
//最后得到按照你设定的条件及优先级排序后的数组
return [[array sortedArrayUsingDescriptors:@[sortByTime,sortById]] mutableCopy];
}
拿好不谢~