陈斌彬的技术博客

Stay foolish,stay hungry

利用 NSSortDescriptor 对 NSMutableArray 排序

有时我们在NSMutableArray中存的是网络请求返回的数据,而每一个元素又是一个NSDictionary,如果这时候需要把数组中的元素按照每个元素字典中某一个key来排序,那么我们可以利用Objective C中的类:NSSortDescriptor来快速实现需求。

通常会把排序的代码封装到一个方法中,比如下面这个方法:

+ (void) changeArray:(NSMutableArray *)dicArray orderWithKey:(NSString *)key ascending:(BOOL)yesOrNo{

       NSSortDescriptor *distanceDescriptor = [[NSSortDescriptor alloc] initWithKey:key

ascending:yesOrNo];

NSArray *descriptors = [NSArray arrayWithObjects:distanceDescriptor,nil];

[dicArray sortUsingDescriptors:descriptors];

   [distanceDescriptor release];

}

参数说明:

dicArray:待排序的NSMutableArray。

key:按照排序的key。

yesOrNo:升序或降序排列,yes为升序,no为降序。