All you need is a Comparable object:
import SwiftSortedList struct MyObj : Comparable { var id: Int } func ==(x: MyObj, y: MyObj) -> Bool { return x.id == y.id } func <(x: MyObj, y: MyObj) -> Bool { return x.id < y.id } Then you can use the SortedList:
// create a new sorted list var sl = SortedList<MyObj>() // add an object let mo = MyObj(id: 1) sl.addElement(mo) // get an object let mo2 = sl.getAt(0) let mo2s = sl[0] print(mo2 == mo2s) // helpers functions let size: Int = sl.count let elements: [MyObj] = sl.array // remove an object sl.removeElement(mo) // replace an object let mo3 = MyObj(id: 3) sl.replace(at: 0, with: mo3) print(mo2 == sl[0]) // false print(mo3 == sl[0]) // true // loop for el in sl.array { // do something with el } SwiftSortedList is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "SwiftSortedList"SwiftSortedList is available under the MIT license. See the LICENSE file for more info.