NSSortDescriptor的使用

我们以数组的排序为例(也许NSSortDescriptor最常用的地方是NSFetchedResultsController中,但用法大致相同)。
    假设要对userArray数组中的对象进行排序,而数组中含有多个User对象(User继承于NSManagedObject),User中有一个属性叫做country。
[plain]
1. NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"country" ascending:YES]; 
2. [userArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 
     这样,就可以根据每一个User的country来进行升序或降序的排列,sortUsingDescriptors的参数是一个数组,也就是说可以使用多个排序参数。
    再比如说,User有一个关系叫做image,image有个属性叫做timestamp,如果要根据User的image关系的timestamp排序,仅需把上面代码中的country改为,image.timestamp。即
[plain]
1. NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"image.timestamp" ascending:YES]; 
2. [userArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

时间: 2024-08-29 16:58:55

NSSortDescriptor的使用的相关文章

NSSortDescriptor对象进行数组排序

//创建一个数组 NSArray *array = @[@"zhangsan", @"lisi", @"zhonger", @"zhubada", @"honghunag"]; //创建一个排序条件,也就是一个NSSortDescriptor对象 //其中第一个参数为数组中对象要按照什么属性来排序(比如自身.姓名,年龄等) //第二个参数为指定排序方式是升序还是降序 //ascending  排序的意思,默

使用NSSortDescriptor对字符串数组进行排序

NSSortDescriptor 指定用于对象数组排序的对象的属性. 如果是Employee对象需要按照name来排序,就生成下面的descriptor NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES]; 如果需要多个排序,比如先按name排序,再按入职日期排序.那就创建两个descriptor NSSortDescriptor *descriptor = [NSS

Objective-C语法之NSSortDescriptor

main.m 1 #import <Foundation/Foundation.h> 2 #import "Person.h" 3 /** 4 NSSortDescriptor 可以实现按照对象的属性进行排序:支持多个属性排序.比如我们有个Person对象,它有名字(name)和年龄(age)两个属性,我们需要按Person的age属性(降序)和name属性(升序)来输出Person对象数组信息 5 */ 6 void testSortDescriptor() { 7 NS

利用 NSSortDescriptor 对 NSMutableArray 排序

有时我们在NSMutableArray中存的是网络请求返回的数据,而每一个元素又是一个NSDictionary,如果这时候需要把数组中的元素按照每个元素字典中某一个key来排序,那么我们可以利用Objective C中的类:NSSortDescriptor来快速实现需求. 通常会把排序的代码封装到一个方法中,比如下面这个方法: + (void) changeArray:(NSMutableArray *)dicArray orderWithKey:(NSString *)key ascendin

NSSortDescriptor排序

NSSortDescriptor可以实现按照对象的属性进行排序.比如我们有一个对象(LGPeople).LGPeople有两个属性分别是名字(name)和年龄(age).现在我们要按照LGPeople的年龄(age)来进行排序. 代码如下: //按年龄排序 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"_age" ascending:NO]; NSArray *sortDescrip

NSSet转成NSArray 以及NSSortDescriptor的使用

//如果想排序以后再取,可以这样:NSSet *users = [groupUser users]; //如果是存的字典,则key后面写的是想按照哪个关键字进行排序 NSSortDescriptor *sd = [[NSSortDescriptor alloc] initWithKey:@"displayName" ascending:YES];NSArray *sortDescriptors = [NSArray arrayWithObjects:sd, nil];NSArray *

OC中用NSSortDescriptor对象进行数组排序

//创建一个数组 NSArray *array = @[@"one", @"two", @"three", @"four", @"six"]; //创建一个排序条件,也就是一个NSSortDescriptor对象 //其中第一个参数为数组中对象要按照什么属性来排序(比如自身.姓名,年龄等) //第二个参数为指定排序方式是升序还是降序 //ascending 排序的意思,默认为YES 升序 NSSortDes

NSSortDescriptor使用注意以及直接排序字符串数组

NSSortDescriptor 指定用于对象数组排序的对象的属性. 如果是Employee对象需要按照name来排序,就生成下面的descriptor NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES]; 如果需要多个排序,比如先按name排序,再按入职日期排序.那就创建两个descriptor NSSortDescriptor *descriptor = [NSS

OC-数组排序-NSSortDescriptor使用

在Object-c中,当有一个班级类MyClass,还有一个学生类Student.在班级类MyClass中通过一个可变数组NSMutableArray保存了许多的学生对象.现在有一个功能需要对学生进行按各种条件排序(按姓名升序,按学号降序,按成绩升序). 借用上面一个简单的功能来了解一下Object-c中排序描述对象NSSortDescriptor对数组的排序的使用方法. 简单的了解一下以下几个类:Student(学生类).MyClass(班级类) Student:(只给接口) 1 @inter