对包含特定int的int的NSArray进行排序

时间:2016-01-28 04:56:46

标签: objective-c sorting nsarray

我有一些这样的数据:

1,5,2,9,7,6,3,8,0,4

但我真的想要这个:

5,6,7,8,9

仅从5开始。

我用这个:

NSArray *ary = @[ @"1", @"5", @"2", @"9", @"7", @"6", @"3", @"8", @"0", @"4" ];
NSArray *myArray = [ary sortedArrayUsingDescriptors:
                    @[[NSSortDescriptor sortDescriptorWithKey:@"doubleValue" ascending:YES]]];

2 个答案:

答案 0 :(得分:1)

NSString *numberExpr =@"^[5-9]";
NSArray *ary = @[ @"1", @"5", @"2", @"9", @"7", @"6", @"3", @"8", @"0", @"4" ];

NSArray *myArray= [ary filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self  MATCHES %@",numberExpr]];

答案 1 :(得分:0)

此解决方案将内容视为数字,如问题的示例代码所示。

double startingValue = 5;

NSArray *ary = @[ @"1", @"5", @"2", @"9", @"7", @"6", @"3", @"8", @"0", @"4" ];

NSArray *myArray= [ary filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self.doubleValue >= %@", @(startingValue)]];

myArray = [myArray sortedArrayUsingDescriptors:
                @[[NSSortDescriptor sortDescriptorWithKey:@"doubleValue" ascending:YES]]];