在这个时候(2015年3月28日):如果我想在迅速用一个稳定的排序,我不得不使用NSArray
和sortWithOptions
或写在斯威夫特我自己的稳定排序,如插入排序?我在Apple Swift文档中看到sorted
的并不稳定.
[array sortWithOptions:NSSortStable usingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2];
}];
Run Code Online (Sandbox Code Playgroud)
除了使用Objective-C或编写自己的排序之外,我是否错过了Swift中可用的其他选项?
我有一组模型,它有 2 个属性:
1.标题 (字符串)
2. isSelected(布尔)
我想根据isSelected
属性对它们进行排序,使其相对于源数组的序列进行排序。例如,如果全部为 FALSE 或 TRUE,则排序后应该有相同的输出。
但如果我使用以下方法,它会在基于 BOOL 属性对它们进行排序后更改原始排序。
someArray = array.sort { $0.selected && !$1.selected }
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能保留原来的顺序?
编辑1
title
图片中未显示排序顺序。可能服务器向我发送了 4 个标题为 Z、Y、P、A 的对象。因此,如果全部都是假的,一旦我排序,它应该像 Z 假,Y 假,P 假,A 假。