利用 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为降序

时间: 2024-10-10 17:35:56

利用 NSSortDescriptor 对 NSMutableArray 排序的相关文章

Android 利用cursor来进行排序(转至http://blog.csdn.net/yangzongquan/article/details/6547860)

主要思路是:override move系列的方法,让cursor以自己想要的顺序来移动,从而达到对cursor排序的目的.比如数组A0里有 4(0),3(1),1(2),2(3),括号内为位置,排序后用数据记录A1:1(2),2(3),3(1),4(0).要访问第一个元素,则访问 A1[0]得到1(2),根据(2)找到在A0中的实际位置2,即1(2).参考了下系统的CursorWrapper和AbstractCursor代 码实现,另外有时间可以顺带了解下MatrixCursor. packag

Foundation 框架 NSArray、NSMutableArray排序

一.使用selector对数组进行排序(无返回) 数组 book 中包含 AddressCard对象. 1.对数组调用 sortUsingSelector方法 1 -(void) sortByName 2 { 3 SEL s = @selector(compareName:); 4 [book sortUsingSelector: s]; 5 } 2.在AddressCard类中添加比较方法:compareName 1 -(NSComparisonResult) compareName: (Ad

利用Scala进行自定义排序的几种方法

# 第一种方法 package day05 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object SortTest1 { def main(args: Array[String]): Unit = { val conf: SparkConf = new SparkConf().setAppName("SortTest1").setMaster("loca

利用sort对数字排序

sort,可排序字符串,按照ASCII码排序. 但也可以穿一个比较函数,实现比较数组内容,排序数组的功能. var arr = [40, 32, 45, 89, 93, 0, 46, 74]; var arr1 = arr.sort(function (a, b) { return a - b; }); console.log('升序:' + arr1); var arr2 = arr.sort(function (a, b) { return b - a; }); console.log('降

C语言利用qsort()函数实现排序

引用#include<stdlib.h>头文件 qsort()括号里面有4个参数 第一个参数是将要排序的数组名array: 第二个参数是将要排序的数量n: 第三个参数是每个要排序的参数的大小xizeof(array[o]): 第四个参数是自己写的一个比较函数comp: 若排序的是int类型的数组 升序: int comp(const void*a,const void*b)//用来做比较的函数.{    return *(int*)a - *(int*)b;} 降序: int comp(con

新建日期类,并利用冒泡排序、选择排序、二分法寻找指定日期

public class TestDateSort{ public static void main(String[] args){ Date[] date=new Date[5]; date[0]=new Date(2006,5,4); date[1]=new Date(2006,7,4); date[2]=new Date(2008,5,4); date[3]=new Date(2004, 5, 9); date[4]=new Date(2004, 5, 4); Date d=new Dat

利用tablesorter实现表格排序

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" sr

NSMutableArray 根据key排序

/** * NSMutableArray 排序 * * @param dicArray 数据 * @param key 关键字排序 * @param yesOrNo 升序或降序排列,yes为升序,no为降序 */ - (void) orderArray:(NSMutableArray *)dicArray orderWithKey:(NSString *)key ascending:(BOOL)yesOrNo{ NSSortDescriptor *distanceDescriptor = [[N

利用标准库中sort函数进行排序

//1.利用sort进行由小到大排序: #include<stdio.h> #include<algorithm> using namespace std; int main() { int a[10],i; for (i=0;i<10;i++) scanf("%d",&a[i]); sort(a,a+10); for (i=0;i<10;i++)printf("%d ",a[i]); return 0; } //2.利用