首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Obj/C:按自定义顺序对数组进行排序

Obj/C:按自定义顺序对数组进行排序
EN

Stack Overflow用户
提问于 2011-03-31 16:22:48
回答 1查看 4K关注 0票数 5

我有一个NSMutableDictionaries数组,其中包含键位置(以及其他内容)。我需要对数组进行排序,以便将其输入到表中。上面应该是N,下面应该是A,下面应该是R。那么在排序中:如何按N-A- R的顺序对数组进行排序?

编辑:我可以通过查看两个变量来排序,但我使用的变量超过2个(总共7个)……

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-31 17:15:50

如果您的数组是可变的,则可以使用-sortUsing...方法。如果没有,可以使用-sortedArrayUsing...创建一个新的排序数组。方法。例如,有接受比较器块作为参数的-sortUsingComparator:和-sortedArrayUsingComparator:方法。您只需要提供一个块,使用您的自定义排序顺序比较两个对象,如下所示:

代码语言:javascript
运行
复制
[myArray sortUsingComparator:^(id firstObject, id secondObject) {
    NSString *firstKey = [firstObject valueForKey:@"location"];
    NSString *secondKey = [secondObject valueForKey:@"location"];
    if ([firstKey stringEqual:@"N"] || [lastKey stringEqual:@"R"])
        return NSOrderedAscending;
    else if ([firstKey stringEqual:secondKey])
        return NSOrderedSame;
    else
        return NSOrderedDescending;
}];

Collections Programming Topics文档中,有非常详细的关于数组排序的讨论和示例。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5497051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档