iOS数组根据key或者类的属性高级排序

方法一:

NSArray  *ary = @[ @"a3" , @"a1" , @"a2" , @"a10" , @"a24" ];

NSLog(@"%@",ary);

NSArray *myary = [ary sortedArrayUsingComparator:^(NSString * obj1, NSString * obj2){    return (NSComparisonResult)[obj1 compare:obj2 options:NSNumericSearch];}];

NSLog(@"%@",myary);

结果 ( a3,a1, a2, a10, a24 ) 

( a1, a2,a3, a10, a24 )


方法二:

NSArray *ary = @[@"a3",@"a1",@"a2",@"a24",@"a14"];

NSLog(@"%@",ary);

NSSortDescriptor *sd1 = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO];//yes升序排列,no,降序排列NSArray *myary = [ary sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd1, nil]];

//注意这里的ary进行排序后会生产一个新的数组指针,myary,不能在用ary,ary还是保持不变的。NSLog(@"%@",myary);

//    (a3, a1, a2,a24,a14)

//    (a3, a24, a2, a14, a1)

方法三:

[ary sortedArrayUsingSelector:@selector(compare:)];//这个是一直默认升序

sortDescriptorWithKey:此方法可以根据传入的类属性或者字典的key--->对应的Value值来进行排序。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值