版本
Version是一个Swift库,它使得表示和比较语义版本号成为可能。它遵循语义版本控制2.0.0。
表示方式如下
- 可比较
- 可散列 & 可等价
- 可转换为字面量字符串
- 可打印
使用方法
版本可以直接实例化
let version = Version(
major: 1,
minor: 2,
patch: 3,
prerelease: "alpha.1",
build: "B001"
)
或者可以从字符串表示形式转换
let version = try Version("1.2.3-alpha.1+B001")
let version: Version = "1.2.3-alpha.1+B001"
// The line above is equivalent to:
let version = try! Version("1.2.3-alpha.1+B001")
版本之间可以相互比较
let version = Version(from: ProcessInfo.processInfo.operatingSystemVersion)
if version > "8.0.0" {
// do something in a more amazing way
} else if version > "7.0.0"
// do it an old-fashioned, legacy-style
} else {
// do not care …
}
除了UIKit的UIDevice
,以下更受推崇的变体,在Foundation中访问操作系统版本,也得到支持:
let version = Version(from: ProcessInfo.processInfo.operatingSystemVersion)
if version == "8.0.1" {
NSLog("Sorry no cellular data for you, my friend!")
}
最后,版本可以直接从包中读取
if NSBundle(path: "Alamofire.framework").version! < "1.0.0" {
println("Howdy Ho! Such an early-adopter using an unstable version!")
println("Beware: “Anything may change at any time.”")
// … or insert an actual meaningful special handling
// for version-specific *implementation details* here.
}
注意:当检查框架的版本时请小心。这些检查是在运行时执行的。如果在不恰当的地方使用可能会影响性能。如果存在API变更,并且您想使用新方法,您必须通过预编译宏(#if
)在编译时检查传递给编译器构建设置OTHER_SWIFT_FLAGS
的定义。
安装
Swift 包管理器
.package(url: "https://github.com/mrackwitz/Version.git", …),
Cocoapods
版本可通过 CocoaPods 获取。要安装,只需在 Podfile 中添加以下行
use_frameworks!
pod 'Version'
Carthage
github "mrackwitz/Version"
作者
Marius Rackwitz, [email protected]
在 Twitter 上关注我 @mrackwitz。
许可
版本遵循 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。