有没有一个函数可以使用NSSortDescriptor数组比较两个对象并返回NSComparisonResult?(将它们放入数组中不会标识相等。)
发布于 2010-09-25 06:28:00
您可以很容易地自己编写该函数。只需迭代数组即可。棘手的设计决策是当不同的比较器返回不同的结果时为什么要这样做。例如,假设我们使用am array和两个比较器来比较一辆法拉利和一大堆泥土:成本和大小。法拉利的成本更高,但尘土堆积更大。我们说哪一个“更大”呢?这是一个设计决策,您必须根据您的特定问题域做出决定。
发布于 2017-09-01 16:19:16
这应该可以正常工作:
+ (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;
}https://stackoverflow.com/questions/3791445
复制相似问题