是否有一个函数使用NSSortDescriptor数组比较两个对象并返回NSComparisonResult? (将它们放在数组中将不会识别相等。)
答案 0 :(得分:0)
您可以自己轻松编写该功能。只是迭代数组。棘手的设计决策是为什么当不同的比较器返回不同的结果时。例如。假设我们使用am阵列和两个比较器来比较法拉利和一大堆污垢:成本和尺寸。法拉利的成本更高,但污垢堆更大。我们说哪个是“更大”?这是您必须根据特定问题域做出的设计决策。
答案 1 :(得分:0)
这应该可以正常工作:
+ (NSComparisonResult)compareObject:(id)firstObject toObject:(id)secondObject withSortDescriptors:(NSArray<NSSortDescriptor *> *)sortDescriptors {
NSComparisonResult result;
NSUInteger index = 0;
do {
NSSortDescriptor *sortDescriptor = [sortDescriptors objectAtIndex:index];
result = [sortDescriptor compareObject:firstObject toObject:secondObject];
index += 1;
} while (result == NSOrderedSame && index < sortDescriptors.count);
return result;
}