我想编写一个通用数组排序器,它只接受两个参数:要排序的数组和包含比较器实现的类,其中类引用包含要使用的类方法。
方法结构应该类似于:
+(NSArray*) sortArray:(NSArray*)unsortedArray withClass:(Class)classReference{
return [unsortedArray sortedArrayUsingSelector: @selector([classReference comparator])];
}
基本思想是允许我编写一个协议,用于在按不同数据类型对数组进行排序时,然后将类及其数组传递给Utility类,在该类中可以对结果进行排序和返回。
答案 0 :(得分:0)
您可以使用块。例如,像这样:
+(NSArray*) sortArray:(NSArray*)unsortedArray withClass:(Class)classReference{
return [unsortedArray sortedArrayUsingComparator:^(id obj1, id obj2){
return (NSComparisonResult)[classReference compare:[NSArray arrayWithObjects:obj1, obj2, nil]];
}];