gpt4 book ai didi

objective-c - NSSortStable 的文档不符合语法——它想表达什么?

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:27 26 4
gpt4 key购买 nike

我有一个数组我想排序,因为 Blocks 是今年的“黑色”,所以我在看

- (void)sortWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr

我查看了要使用的排序选项,NSSortStable 文档说:

Specifies that the sorted results should return compared items have equal value in the order they occurred originally.

If this option is unspecified equal objects may, or may not, be returned in their original order.

我还没喝足够的咖啡来理解它在说什么,第一句话甚至在语法上都不正确。

有人可以为傻瓜翻译成英语吗?

最佳答案

NSSortStable 指定如果两个对象比较相等,则它们的顺序应保持不变。

例如,让我们考虑以下内容:

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"one", @"two", @"three", @"four", nil];
[array sortWithOptions:0 usingComparator:^NSComparisonResult(id obj1, id obj2) {
if ( [obj1 length] < [obj2 length] )
return NSOrderedAscending;
if ( [obj1 length] > [obj2 length] )
return NSOrderedDescending;
return NSOrderedSame;
}];

如果你不指定NSSortStable,排序后的数组可能是(one, two, four, three)(two, one, four , three) 因为 onetwo 的长度相同。两个结果都被接受。这允许排序算法执行(稍微)更快。

当指定 NSSortStable 时,比较相等的对象必须按其原始顺序返回(即第一个 one,然后 two)。

关于objective-c - NSSortStable 的文档不符合语法——它想表达什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com