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

本文共 2711 字,大约阅读时间需要 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

 

转载地址:http://muqkl.baihongyu.com/

你可能感兴趣的文章
pfSense book之硬件配置指南
查看>>
存储过程总结 2
查看>>
js parsefloat
查看>>
快速启动神器 Wox
查看>>
第 34 章 Gnuplot
查看>>
WCF NetTcpBinding Transport安全模式(6) ClientCredentialType证书验证模式---- PeerTrust验证模式...
查看>>
选择HttpHandler还是HttpModule?
查看>>
HTC Desire 金卡制作方法
查看>>
C#高性能大容量SOCKET并发(十):SocketAsyncEventArgs线程模型
查看>>
phpcurl 请求Chunked-Encoded data 遇到的一个问题
查看>>
ASPX页面中不放置Form元素的问题
查看>>
docker~Dockerfile优化程序的部署
查看>>
你可能不需要一个 JavaScript 框架(二)
查看>>
【Android】显示Emoji表情字符
查看>>
C++ Exercises(十八)
查看>>
21.5. 流量控制
查看>>
WSRP调用中的一些问题
查看>>
Android 正则表达式
查看>>
5.22. Spring boot with Cache
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]4.3.13
查看>>