当我在块中 return NSOrderedSame 时,sortedArrayUsingComparator 方法如何?

How about the sortedArrayUsingComparator method do when I return NSOrderedSame in block?

让我们看看代码:

NSArray *array = @[@1,@3,@2,@5, @6];
NSArray *array2 = [array sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
return NSOrderedSame;
}];  

我知道return NSOrderedAscendingreturn NSOrderedDescending的用法。但是如果我在block里面写return NSOrderedSame,这两个item的顺序是不是就不会变了。

它会说 "oh that's cool" 并且它将移动到下一对而不移动当前对并在数组 出现 时快速完成排序。

当然,它实际上并没有排序,因为你在骗它:

Garbage in, garbage out

想知道NSArray使用的是哪种排序算法,可以去这个问题:What sort function is used in NSArray?

如果在排序块中 return NSOrderedSame,数组将对所有算法不做任何事情。 :)