NSSortDescriptor
2015-06-14 14:55
211 查看
NSSortDescriptor 指定用于对象数组排序的对象的属性。
NSMutableArray *ma1 =[[NSMutableArray alloc] init];
[ma1 addObject:@"2"];
[ma1 addObject:@"1"];
[ma1 addObject:@"3"];
NSSortDescriptor *sd1 = [NSSortDescriptorsortDescriptorWithKey:@"self" ascending:NO];
NSArray *arr1 = [ma1 sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd1,nil]];
for (NSString *str in arr1) {
NSLog(@"%@", str);
}
NSMutableArray *ma2 = [[NSMutableArray alloc] init];
[ma2 addObject:@"b"];
[ma2 addObject:@"c"];
[ma2 addObject:@"a"];
NSSortDescriptor *sd2 = [NSSortDescriptorsortDescriptorWithKey:@"self" ascending:YES];
NSArray *arr2 = [ma2 sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd2,nil]];
for (NSString *str in arr2) {
NSLog(@"%@", str);
}
NSMutableArray *ma3 = [[NSMutableArray alloc] init];
NSMutableDictionary *md1 = [[NSMutableDictionary alloc] init];
[md1 setObject:@"e" forKey:@"name"];
NSMutableDictionary *md2 = [[NSMutableDictionary alloc] init];
[md2 setObject:@"d" forKey:@"name"];
NSMutableDictionary *md3 = [[NSMutableDictionary alloc] init];
[md3 setObject:@"f" forKey:@"name"];
[ma3 addObject:md1];
[ma3 addObject:md2];
[ma3 addObject:md3];
[md1 release];
[md2 release];
[md3 release];
NSSortDescriptor *sd3 = [NSSortDescriptorsortDescriptorWithKey:@"name" ascending:YES];
NSArray *arr3 = [ma3 sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd3,nil]];
for (NSMutableDictionary *md in arr3) {
NSLog(@"%@", [md objectForKey:@"name"]);
}
[ma1 release];
[ma2 release];
[ma3 release];
转自:http://www.cnblogs.com/zhw511006/archive/2011/06/16/2082787.html
NSSortDescriptor 指定用于对象数组排序的对象的属性。
如果是Employee对象需要按照name来排序,就生成下面的descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES];
如果需要多个排序,比如先按name排序,再按入职日期排序。那就创建两个descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:hireDate ascending:YES];
两个descriptor放到数组里一起传给需要排序的数组。
如果对象就是NSString,就是字符串数组排序,那更简单了,sortdescriptor的key直接指定为nil,就直接排序对象,而不是对象的某一个属性了。
NSSortDescriptor *descriptor= [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
NSArray *descriptors= [NSArray arrayWithObject:descriptor];
NSArray *myDataArray=[NSArray arrayWithObjects:@"what", @"xero", @"highligth", @"mountain",@"Victory", @"Balance", nil];
NSArray *resultArray= [myDataArray sortedArrayUsingDescriptors:descriptors];
NSLog(@"%@",resultArray);
NSArray 使用sortedArrayUsingDescriptors,返回排序好的数组。
NSMutableArray可以直接使用sortUsingDescriptors,对数组本身排序。
转自:http://blog.sina.com.cn/s/blog_8c87ba3b0101phr5.html
NSMutableArray *ma1 =[[NSMutableArray alloc] init];
[ma1 addObject:@"2"];
[ma1 addObject:@"1"];
[ma1 addObject:@"3"];
NSSortDescriptor *sd1 = [NSSortDescriptorsortDescriptorWithKey:@"self" ascending:NO];
NSArray *arr1 = [ma1 sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd1,nil]];
for (NSString *str in arr1) {
NSLog(@"%@", str);
}
NSMutableArray *ma2 = [[NSMutableArray alloc] init];
[ma2 addObject:@"b"];
[ma2 addObject:@"c"];
[ma2 addObject:@"a"];
NSSortDescriptor *sd2 = [NSSortDescriptorsortDescriptorWithKey:@"self" ascending:YES];
NSArray *arr2 = [ma2 sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd2,nil]];
for (NSString *str in arr2) {
NSLog(@"%@", str);
}
NSMutableArray *ma3 = [[NSMutableArray alloc] init];
NSMutableDictionary *md1 = [[NSMutableDictionary alloc] init];
[md1 setObject:@"e" forKey:@"name"];
NSMutableDictionary *md2 = [[NSMutableDictionary alloc] init];
[md2 setObject:@"d" forKey:@"name"];
NSMutableDictionary *md3 = [[NSMutableDictionary alloc] init];
[md3 setObject:@"f" forKey:@"name"];
[ma3 addObject:md1];
[ma3 addObject:md2];
[ma3 addObject:md3];
[md1 release];
[md2 release];
[md3 release];
NSSortDescriptor *sd3 = [NSSortDescriptorsortDescriptorWithKey:@"name" ascending:YES];
NSArray *arr3 = [ma3 sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd3,nil]];
for (NSMutableDictionary *md in arr3) {
NSLog(@"%@", [md objectForKey:@"name"]);
}
[ma1 release];
[ma2 release];
[ma3 release];
转自:http://www.cnblogs.com/zhw511006/archive/2011/06/16/2082787.html
NSSortDescriptor 指定用于对象数组排序的对象的属性。
如果是Employee对象需要按照name来排序,就生成下面的descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES];
如果需要多个排序,比如先按name排序,再按入职日期排序。那就创建两个descriptor
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:hireDate ascending:YES];
两个descriptor放到数组里一起传给需要排序的数组。
如果对象就是NSString,就是字符串数组排序,那更简单了,sortdescriptor的key直接指定为nil,就直接排序对象,而不是对象的某一个属性了。
NSSortDescriptor *descriptor= [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
NSArray *descriptors= [NSArray arrayWithObject:descriptor];
NSArray *myDataArray=[NSArray arrayWithObjects:@"what", @"xero", @"highligth", @"mountain",@"Victory", @"Balance", nil];
NSArray *resultArray= [myDataArray sortedArrayUsingDescriptors:descriptors];
NSLog(@"%@",resultArray);
NSArray 使用sortedArrayUsingDescriptors,返回排序好的数组。
NSMutableArray可以直接使用sortUsingDescriptors,对数组本身排序。
转自:http://blog.sina.com.cn/s/blog_8c87ba3b0101phr5.html
相关文章推荐
- 解决eclipse中java项目导出成jar包后读写UTF-8文件中文乱码问题
- 如何让一个APP启动另一个APP
- CSS盒子模型
- 【VB与数据库】——机房收费系统之上下机
- ASPxPopupControl 关闭对话框前后台用法
- Java程序设计实验 实验五
- Demo Java 2 method to implement Multi-Thread
- 安卓手电筒小程序
- 匈牙利算法
- Map.keySet()排序问题
- Android学习 StateMachine与State模式
- 漫谈数据挖掘从入门到进
- poj 2001 字典树入门题(数组实现模板)
- 设计模式学习笔记--代理模式
- 一个中转脚本
- 匈牙利算法
- 关于等待多长时间会引发ORA-04021: timeout occurred while waiting to lock object错误的猜测
- java网络编程
- linux基本命令-RPM包管理
- java笔记13 异常