当我在块中 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 NSOrderedAscending
和return NSOrderedDescending
的用法。但是如果我在block里面写return NSOrderedSame
,这两个item的顺序是不是就不会变了。
它会说 "oh that's cool" 并且它将移动到下一对而不移动当前对并在数组 出现 时快速完成排序。
当然,它实际上并没有排序,因为你在骗它:
Garbage in, garbage out
想知道NSArray使用的是哪种排序算法,可以去这个问题:What sort function is used in NSArray?
如果在排序块中 return NSOrderedSame,数组将对所有算法不做任何事情。 :)
让我们看看代码:
NSArray *array = @[@1,@3,@2,@5, @6];
NSArray *array2 = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return NSOrderedSame;
}];
我知道return NSOrderedAscending
和return NSOrderedDescending
的用法。但是如果我在block里面写return NSOrderedSame
,这两个item的顺序是不是就不会变了。
它会说 "oh that's cool" 并且它将移动到下一对而不移动当前对并在数组 出现 时快速完成排序。
当然,它实际上并没有排序,因为你在骗它:
Garbage in, garbage out
想知道NSArray使用的是哪种排序算法,可以去这个问题:What sort function is used in NSArray?
如果在排序块中 return NSOrderedSame,数组将对所有算法不做任何事情。 :)