objective-c - 按两个标准对对象数组进行排序?

标签 objective-c arrays sorting

我有一个对象数组,我想用两个键对其进行排序。对象可以说是 Student 类型,我对我的排序感兴趣的属性是 gradename

Student
{
    double grade;
    string name;
    ...
} 

我怎样才能先按等级然后按名称对对象进行排序?所以例如如果我有列表: 汤姆9.9 安德鲁 9.8 克里斯蒂 10 垫子 9.8 佳佳 10 艾达 9.8

排序后我应该有: 佳佳 10 科视 10 汤姆9.9 艾达 9.8 安德鲁 9.8 垫9.8

并没有 科视 10 佳佳 10 汤姆9.9 安德鲁 9.8 艾达 9.8 垫9.8

任何指针都非常有用。

最佳答案

我的 objective-c 知识很古怪,但有一些很好的建议 here并且总是有 documentation .这是我的破解方法...

NSSortDescriptor *gradeSorter = [[NSSortDescriptor alloc] initWithKey:@"grade" ascending:YES];
NSSortDescriptor *nameSorter = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];

[personList sortUsingDescriptors:[NSArray arrayWithObjects:gradeSorter, nameSorter, nil]];

关于objective-c - 按两个标准对对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2071722/

相关文章:

iphone - 在 iOS 上是否可以自定义推送通知

ios - 使用 Storyboard将数据从注释传递到详细 View iOS

javascript - 使用来自简单数组的 javascript 创建动态 html 表

php - mysql查询结果放入php数组

java - 如何在Android Studio中对 ListView 中的数据进行排序

ios - 根据 NSDictionaries 的 NSArray 内的值创建 UITableView 的索引

iphone - 如何确定哪个 UIAlertView 调用了委托(delegate)。

arrays - 如何在 Swift 中对字符串的行进行排序?

c++ - 如何检查传递给函数的容器是否已排序,如果没有则对其进行排序

linux - 根据字符串中的特定值进行排序。