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

来源:互联网 发布:origin8折线图显示数据 编辑:程序博客网 时间:2024/05/29 14:01

方法一:

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
原创粉丝点击