swi

SwiftSortUtils

Useful functions and extensions for sorting in Swift

Showing:

Popularity

Downloads/wk

0

GitHub Stars

58

Maintenance

Last Commit

4yrs ago

Contributors

2

Package

Dependencies

0

License

MIT

Categories

Readme

SwiftSortUtils

CI Status Version License Platform

Motivation

This library takes a shot at making sorting in Swift more pleasant. It also allows you to reuse your old NSSortDescriptor instances in Swift.

Examples

let somePeople: [Person] = ...

// Sort by a comparable attribute
let ... = somePeople.sort(sortingBy { $0.firstname })

// Sort by multiple attributes
let ... = somePeople.sort(
  sortingBy { $0.age } <|>
  sortingBy { $0.lastname } <|>
  sortingBy { $0.firstname }
)

// Append any comparator function
let ... = somePeople.sort(
  sortingBy { $0.age } <|>
  { (p1, p2) in p1.wearsGlasses() && !p2.wearsGlasses() }
)

// Reverse compare functions
let ... = somePeople.sort(
  sortingBy(.descending) { $0.age } <|>
  sortingBy { $0.lastname } <|>
  reverseComparator(sortingBy { $0.firstname }) // reverse any compare function
)

// Use an NSSortDescriptor
let ageSortDescriptor = NSSortDescriptor(key: "age", ascending: true)
let ... = somePeople.sort(ageSortDescriptor.toCompareFunction())

// Even Use multiple NSSortDescriptors
let nameSortDescriptors = [
  NSSortDescriptor(key: "lastname", ascending: true),
  NSSortDescriptor(key: "firstname", ascending: true)
]
let ... = somePeople.sort(nameSortDescriptors.toCompareFunction())

See the tests for more examples.

Usage

To run the example project, clone the repo, and run pod install from the Example directory first.

Installation

Swift Version

This Version of SwiftSortUtils is meant to be used with Swift 3.0

For older Swift versions:

  • Swift 2.3 -> Use 0.2.0

CocoaPods

SwiftSortUtils is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "SwiftSortUtils"

Manually

Download the files in Pod/Classes and drop them into your project.

Author

Daniel Strittmatter, daniel@smattr.de

License

SwiftSortUtils is available under the MIT license. See the LICENSE file for more info.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100