Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 根据另一个配置阵列对阵列进行排序_Ios_Objective C_Nsarray_Nssortdescriptor - Fatal编程技术网

Ios 根据另一个配置阵列对阵列进行排序

Ios 根据另一个配置阵列对阵列进行排序,ios,objective-c,nsarray,nssortdescriptor,Ios,Objective C,Nsarray,Nssortdescriptor,我必须根据配置对array进行排序,假设它有一些学生的数据,这些数据有学生的名字 [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"name", nil],[NSDictionary dictionaryWithObjectsAndKeys:@"efg",@"name", nil][NSDictionary dictionaryWithObjectsAndKeys:@"cde",@"

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

    [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"name", nil],[NSDictionary dictionaryWithObjectsAndKeys:@"efg",@"name", nil][NSDictionary dictionaryWithObjectsAndKeys:@"cde",@"name", nil], nil];
我还有另一个数组,它说如何对这个数组进行排序,比如说,首先应该是efg,然后是abc,等等


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

也许这就是您想要的:

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

我将使用一个块来允许您指定比较逻辑

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