如何根据iPhone中的值按字母顺序对NSMutableArray进行排序

时间:2012-09-01 08:07:55

标签: iphone sorting nsmutablearray

在我的应用程序中我从Web服务器获取一些队列详细信息值,我已经在NSMutableArray中存储了队列ID和队列标题,现在我需要按字母顺序对队列标题进行排序,但是如果我这样做我的所有队列ID值混淆了,那么如何使队列标题按字母顺序排序并存储在各自的队列id值中。

NSArray *DicPicklistValues = [tempPickList valueForKey:@"PickListValue"];
for(int i=0;i<[DicPicklistValues count];i++){

    NSDictionary *tempDic = [DicPicklistValues objectAtIndex:i];
    [queueId addObject:[tempDic objectForKey:@"Value"]];
    [queueLabel addObject:[tempDic objectForKey:@"Label"]];
}

[queueLabel sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

1 个答案:

答案 0 :(得分:0)

您可以在构建DicPicklistValuesqueueId数组之前对queueLabel数组进行排序。 (顺便说一下,变量名称通常以小写字母开头。)

NSArray *dicPicklistValues = [tempPickList valueForKey:@"PickListValue"];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"Label"
                        ascending:YES
                        selector:@selector(localizedCaseInsensitiveCompare:)];
NSArray *sortedPicklistValues = [dicPicklistValues sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];
// now use sortedPicklistValues instead of dicPicklistValues ...

还有一种更简单的方法来构建queueIdqueueLabel数组:

NSArray *queueId = [sortedPicklistValues valueForKey:@"Value"];
NSArray *queueLabel = [sortedPicklistValues valueForKey:@"Label"];