我必须根据配置对arrray进行排序,假设它有一些学生的学生姓名数据
[NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"name", nil],[NSDictionary dictionaryWithObjectsAndKeys:@"efg",@"name", nil][NSDictionary dictionaryWithObjectsAndKeys:@"cde",@"name", nil], nil];
我有另一个数组说明如何对这个数组进行排序,就像它首先应该是efg然后是abc等等。
是否可以使用nsssortdescriptor或者我必须编写我的自定义代码。
答案 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];