NSMutableArray复杂对象排序
2016-07-26 09:05
435 查看
1、 说明:以下程序中NSMutableArray数组中包含的对象是NSDictionary,而下面要实现的排序就是根据NSDictionary中的key代表的value进行比较而排序,如下:
code
经过1、2、3三个操作得到的数组newResult,就是根字典NSDictionary中的value所代表的值进行由大到小排序的数组。
code
//1.对字段的封装 - (NSDictionary *)formateDicWithName:(NSString *)name value:(NSNumber *)value color:(UIColor *)color { return [NSDictionary dictionaryWithObjectsAndKeys: name,@"name", value,@"value", color,@"color",nil]; } |
//2.准备数据 NSMutableArray *result = [NSMutableArray arrayWithCapacity:0]; NSDictionary *deptBal = [self formateDicWithName:@"储蓄余额" value: [NSNumber numberWithFloat:30] color:[UIColor redColor]]; [result addObject:deptBal]; NSDictionary *finBal = [self formateDicWithName:@"理财产品余额" value: [NSNumber numberWithFloat:20] color: [UIColor yellowColor]]; [result addObject:finBal]; NSDictionary *debtBal = [self formateDicWithName:@"国债余额" value: [NSNumber numberWithFloat:40] color: [UIColor blueColor]]; [result addObject:debtBal]; NSDictionary *fundBal = [self formateDicWithName:@"基金市值" value: [NSNumber numberWithFloat:10] color: [UIColor blackColor]]; [result addObject:fundBal]; |
//3.实现排序 NSArray *newResult = [result sortedArrayUsingComparator:^(id obj1,id obj2) { NSDictionary *dic1 = (NSDictionary *)obj1; NSDictionary *dic2 = (NSDictionary *)obj2; NSNumber *num1 = (NSNumber *)[dic1 objectForKey:@"value"]; NSNumber *num2 = (NSNumber *)[dic2 objectForKey:@"value"]; if ([num1 floatValue] > [num2 floatValue]) { return (NSComparisonResult)NSOrderedAscending; } else { return (NSComparisonResult)NSOrderedDescending; } return (NSComparisonResult)NSOrderedSame; }]; |
相关文章推荐
- 解决Wince6.0编译错误方法
- PyGobject(五)布局容器之Button篇——Gtk.Button
- Relatives(欧拉函数,求互质)
- 浅尝JMX
- SpringMVC的Controller方法参数
- VS 2015 OpenCV环境搭建
- Windows下使用krpanotools命令行生成全景图
- VS 2015 OpenGL环境搭建
- android studio启动模拟器失败
- Java实现简单AES RSA加密
- 使用ajaxfileupload上传文件
- MapperScannerConfigurer处理过程源码分析(转)
- document.ready和window.onload的区别
- Rookey.Frame之实体类
- mysql 常用命令
- JQuery cxSelect联动下拉菜单
- FreeMarker中<#include>和<#import>标签的区别
- mysql储存引擎innodb
- 杭电-1702 ACboy needs your help again!(栈&队列)
- 桥接模式