Ios 根据另一个配置阵列对阵列进行排序
我必须根据配置对array进行排序,假设它有一些学生的数据,这些数据有学生的名字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",@"
[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;