订单字符串数组

时间:2010-10-13 12:49:26

标签: iphone

我需要将数组中的一组字符串排序为某个预定义的顺序,例如,如果我的数组包含字段[a,b,c,d],那么我需要将元素排序为预定义顺序[c,a如果源数组错过任何元素,那么我还需要以预定义的方式对它进行排序,就像源数组包含[a,c,d]那样我需要结果为[c,a,d],这可能是在iPhone SDK中使用NSPredicate。

提前致谢

2 个答案:

答案 0 :(得分:1)

我只使用NSString内置的compare:方法:

NSArray *newArray = [oldArray sortedArrayUsingSelector:@selector(compare:)];

答案 1 :(得分:0)

您可以使用NSSortDescriptor对数组进行排序,例如:

NSSortDescriptor *order = [[NSSortDescriptor alloc] initWithKey:@"key" ascending:YES];
NSArray *sorts = [[NSArray alloc] initWithObjects:order,nil];

NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:sorts];
[sorts release];
[order release];

您创建了一个按顺序应用的排序描述符数组。

您还可以使用选择器进行排序,请参阅此答案以获取更多选项:How to sort an NSMutableArray with custom objects in it?