简介
OrderedSet基本上是Foundation的NSOrderedSet/NSMutableOrderedSet在Swift中的等效物。它是为了使Swift拥有一个独特的有序集合,具有快速的查找性能,并且通过泛型支持强类型,因此我们可以将其中的Swift结构和枚举存储在其中。
用法
OrderedSet使用方式与Array非常相似。以下是一些基本用法示例
var set = OrderedSet<Int>()
set.append(1)
set.contains(1) // => true
set[0] = 2
set[0] // => 2
set.insert(3, at: 0)
set // => [3, 2]
set = [1,2,3] // OrderedSet's support array literals
set // => [1, 2, 3]
set += [3, 4] // You can concatenate any sequence type to an OrderedSet
set // => [1, 2, 3, 4] (Since 3 was already in the set it was not added again)
建议您尽量使用实例方法而不是全局Swift方法来搜索OrderedSet。例如,Swift的一般方法contains(haystack,needle)将会遍历OrderedSet,而不会使用OrderedSet.contains(needle)方法将会使用的快速查找实现。
请查看单元测试,以了解如何与OrderedSet交互的不同方法。您还可以查看样例项目,它将默认的master/detail项目修改为使用OrderedSet而不是Array。
安装
OrderedSet是位于源目录中的单个Swift文件。您可以将其文件复制到您的项目中,或者通过添加以下行到Podfile使用CocoaPods
pod 'OrderedSet', '5.0'
或者通过Carthage使用,在Cartfile中添加
github "Weebly/OrderedSet"
并在您的应用程序中嵌入OrderedSet.framework。
然后将以下导入添加到您想使用OrderedSet的地方
import OrderedSet
使用SwiftPM
package.append(.package(url: "https://github.com/Weebly/OrderedSet.git", .upToNextMajor(from: "5.0.0")))
许可
OrderedSet可在MIT许可证下使用。有关详细信息,请参阅LICENSE文件。
贡献
我们非常欢迎您的帮助来使OrderedSet变得更好。请随意
- 如果您遇到任何问题,请打开一个问题单。
- 分叉项目并提交拉取请求。