博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C语法之NSSortDescriptor
阅读量:5150 次
发布时间:2019-06-13

本文共 2766 字,大约阅读时间需要 9 分钟。

main.m

1 #import 
2 #import "Person.h" 3 /** 4 NSSortDescriptor 可以实现按照对象的属性进行排序;支持多个属性排序。比如我们有个Person对象,它有名字(name)和年龄(age)两个属性,我们需要按Person的age属性(降序)和name属性(升序)来输出Person对象数组信息 5 */ 6 void testSortDescriptor() { 7 NSMutableArray *mArrPerson = [[NSMutableArray alloc] initWithCapacity:5]; 8 Person *p = [[Person alloc] initWithName:@"KK" age:23]; 9 [mArrPerson addObject:p];10 p = [[Person alloc] initWithName:@"Candy" age:22];11 [mArrPerson addObject:p];12 p = [[Person alloc] initWithName:@"Wiky" age:27];13 [mArrPerson addObject:p];14 p = [[Person alloc] initWithName:@"Stone" age:32];15 [mArrPerson addObject:p];16 p = [[Person alloc] initWithName:@"Tom" age:28];17 [mArrPerson addObject:p];18 p = [[Person alloc] initWithName:@"Sherlock" age:27];19 [mArrPerson addObject:p];20 p = [[Person alloc] initWithName:@"Alex" age:29];21 [mArrPerson addObject:p];22 p = [[Person alloc] initWithName:@"Keye" age:28];23 [mArrPerson addObject:p];24 25 NSLog(@"按Person的age属性(降序)和name属性(升序)");26 NSSortDescriptor *sortByAge = [[NSSortDescriptor alloc] initWithKey:@"age" ascending:NO];27 NSSortDescriptor *sortByName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];28 [mArrPerson sortUsingDescriptors:@[sortByAge, sortByName]];29 for (Person *p in mArrPerson) {30 NSLog(@"age=%ld, name=%@", p.age, p.name);31 }32 }33 int main(int argc, const char * argv[]) {34 @autoreleasepool {35 testSortDescriptor();36 }37 return 0;38 }

 

Person.h

1 #import 
2 @interface Person : NSObject3 @property (nonatomic, strong) NSString *name;4 @property (nonatomic, assign) NSInteger age;5 6 - (id)initWithName:(NSString *)name age:(NSInteger)age;7 @end

 

Person.m

1 #import "Person.h" 2  3 @implementation Person 4 - (id)initWithName:(NSString *)name age:(NSInteger)age { 5     if (self = [super init]) { 6         _name = name; 7         _age = age; 8     } 9     return self;10 }11 @end

 

结果:

1 2015-03-28 12:27:13.240 OCNSSortDescriptor[1276:49262] 按Person的age属性(降序)和name属性(升序)2 2015-03-28 12:27:13.241 OCNSSortDescriptor[1276:49262] age=32, name=Stone3 2015-03-28 12:27:13.241 OCNSSortDescriptor[1276:49262] age=29, name=Alex4 2015-03-28 12:27:13.241 OCNSSortDescriptor[1276:49262] age=28, name=Keye5 2015-03-28 12:27:13.241 OCNSSortDescriptor[1276:49262] age=28, name=Tom6 2015-03-28 12:27:13.242 OCNSSortDescriptor[1276:49262] age=27, name=Sherlock7 2015-03-28 12:27:13.242 OCNSSortDescriptor[1276:49262] age=27, name=Wiky8 2015-03-28 12:27:13.242 OCNSSortDescriptor[1276:49262] age=23, name=KK9 2015-03-28 12:27:13.242 OCNSSortDescriptor[1276:49262] age=22, name=Candy

 

转载于:https://www.cnblogs.com/huangjianwu/p/4573998.html

你可能感兴趣的文章
CloseableHttpClient与 CloseableHttpResponse应用
查看>>
Alpha 冲刺 (1/10)
查看>>
ConcurrentHashMap 1.8为什么要使用CAS+Synchronized取代Segment+ReentrantLock
查看>>
hackinglab 脚本关 writeup
查看>>
需求统计
查看>>
Maintenance Plans in MS SQL 2005
查看>>
JavaScript事件循环机制
查看>>
自己封装的AJAX (带JSON)
查看>>
测试Celery 在Windows中搭建和使用的版本
查看>>
Windows server 2016 支持容器 ,安装docker 搭建Ubuntu+hadoop (docker为服务器)
查看>>
LOG4J介绍
查看>>
IDEA总是启动不了
查看>>
Spring+SpringMvc+Mybatis+多个文件上传与下载
查看>>
mysql 存储过程字符分割
查看>>
转: CvMat,Mat和IplImage之间的转化和拷贝
查看>>
301和302 Http状态有啥区别?
查看>>
字符串的操作时间格式化
查看>>
前端js文件添加版本号
查看>>
遗传算法
查看>>
【uWSGI】实战之Django配置经验
查看>>