我有一个像这样的字符串数组:
NSArray *unsortedArray = [NSArray arrayWithObjects:@"MailIn", @"Branch", @"eSign", @"RDC", nil];
我收到了这个数组,并不保证所有4个字符串都会出现。它可能有4个,或者只有1个。
我需要一直按照这个确切的顺序对数组进行排序.. [eSign,RDC,Branch,MailIn]。请记住,有可能其中一个或多个可能不存在。我怎么做到这一点?任何帮助将不胜感激。提前谢谢!
答案 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);