iOS排序特定字符串数组

时间:2015-07-22 20:07:19

标签: ios arrays sorting

我有一个像这样的字符串数组:

NSArray *unsortedArray = [NSArray arrayWithObjects:@"MailIn", @"Branch", @"eSign", @"RDC", nil];

我收到了这个数组,并不保证所有4个字符串都会出现。它可能有4个,或者只有1个。

我需要一直按照这个确切的顺序对数组进行排序.. [eSign,RDC,Branch,MailIn]。请记住,有可能其中一个或多个可能不存在。我怎么做到这一点?任何帮助将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:2)

如果你真的想要一种排序,那么这是一种方法。但是对于只有4个字符串我可能只是展开@Zev Eisenberg的循环并在代码中构建它。

NSDictionary* indexes = @{ @"eSign" : @0, @"RDC" : @1, @"Branch" : @2, @"MailIn" : @3 };
NSArray* sorted = [unsorted sortedArrayUsingComparator: ^NSComparisonResult(NSString* s1, NSString* s2) {

    return [indexes[s1] compare: indexes[s2]];
}];

答案 1 :(得分:1)

我将使用示例数组作为模板构建一个新数组:

NSArray *exemplarArray = @[ @"eSign", @"RDC", @"Branch", @"MailIn" ];
NSArray *unsorted = @[ @"MailIn", @"Branch", @"eSign", @"RDC" ];

NSMutableArray *sorted = [NSMutableArray array];
for (NSString *string in exemplarArray) {
    if ([unsorted containsObject:string]) {
        [sorted addObject:string];
    }
}
NSLog(@"%@", sorted);