Sorter 0.2.0

Sorter 0.2.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2017 年 8 月
SwiftSwift 版本3.0
SPM支持 SPM

Naoto Onagi 维护。



Sorter 0.2.0

Sorter

Swift 中支持多个条件的排序器,如 NSSortDescriptor。

let items: [Item] = ...

// Create Sorter for each attribute
let sorterForNum = Sorter<Item>(asc: false) { $0.num }
let sorterForText = Sorter<Item>(asc: true) { $0.text }

// Create Sorter with multiple conditions
let sorter = Sorter([sorterForNum, sorterForText])

// Get sorted result
let result = items.sorted(by: sorter)

/*
result: [
    Item(num: 2, text: "a"),
    Item(num: 2, text: "b"),
    Item(num: 2, text: "c"),
    Item(num: 1, text: "a"),
    Item(num: 1, text: "b"),
    Item(num: 1, text: "c")
]
*/

初始化器

1. 通过可比属性初始化 Sorter

默认排序为升序。

Sorter<Item>(asc: false) { $0.num } // Pattern 1
Sorter<Item>(asc: true) { $0.num } // Pattern 2
Sorter<Item> { $0.num } // Pattern 3

2. 通过描述符初始化 Sorter

Sorter<Item> { $0.0.text < $0.1.text }

3. 通过多个条件初始化 Sorter

Sorter([sorter1, sorter2])
Sorter([sorter1, sorter2, sorter3])
...

排序序列

通过排序器排序项目

let result = items.sort(by: sorter)

要求

  • Swift 3.0 或更高版本
  • iOS 8.0 或更高版本

作者

Naoto Onagi, [email protected]

许可

Sorter 在 MIT 许可下可用。更多信息请参阅 LICENSE 文件。