基于另一个配置数组对数组进行排序

时间:2014-02-05 12:55:11

标签: ios objective-c nsarray nssortdescriptor

我必须根据配置对arrray进行排序,假设它有一些学生的学生姓名数据

    [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"name", nil],[NSDictionary dictionaryWithObjectsAndKeys:@"efg",@"name", nil][NSDictionary dictionaryWithObjectsAndKeys:@"cde",@"name", nil], nil];

我有另一个数组说明如何对这个数组进行排序,就像它首先应该是efg然后是abc等等。

是否可以使用nsssortdescriptor或者我必须编写我的自定义代码。

2 个答案:

答案 0 :(得分:1)

我会使用一个块来指定你的比较逻辑

NSArray *sortedArray = [_helpItems sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
    return [(MAHelpItem *)a order] > [(MAHelpItem *)b order];
}];
self.items = sortedArray;

答案 1 :(得分:0)

也许这就是你要找的东西:

  NSArray *students;
  NSArray *sortPriorities;
  NSMutableArray *sortDescriptors = @[].mutableCopy;
  for (NSString *key in sortPriorities) {
    [sortDescriptors addObject:[NSSortDescriptor sortDescriptorWithKey:key ascending:YES]];
  }
  NSArray *sortedStudents = [students sortedArrayUsingDescriptors:sortDescriptors];