版本 0.8.0

版本 0.8.0

测试已测试
Lang语言 SwiftSwift
许可 MIT
发布上次发布2020年5月
SPM支持SPM

Marius RackwitzVincent Esche 维护。



版本 0.8.0

版本

CI Status

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 文件。