语义版本控制
Swift 中的语义版本控制实现!使用结构体 Version
来表示符合 语义版本控制规范 2.0.0 的版本。
开始使用
要求
- iOS 11.0+ / Mac OS X 10.13+
- Xcode 11+
- Swift 5.0
安装
在您的项目中使用 SemanticVersion 的一种最容易的方式是使用 CocoaPods 包管理器。
Swift PM
请参阅如何将依赖项添加到您的应用程序了解如何使用该库与Swift PM。
CocoaPods
如果尚未安装,请参阅CocoaPods的安装说明
要将库集成到您的Xcode项目中,请将pods依赖项指定到您的Podfile
platform :ios, '11.0'
use_frameworks!
pod 'SemanticVersioning'
运行pod install
pod install
使用方法
创建版本2.0.0
let version = Version(major: 2)
创建版本1.2.3
let version = Version(major: 1, minor: 2, patch: 3)
创建版本1.0.0-alpha.2
let version = Version(major: 1, preReleaseIdentifier: ["alpha", "2"])
从字符串创建版本
let version: Version = "1.3.10-rc"
从字符串数组创建版本列表
let versions: [Version] = ["1.0.0-alpha", "1.0.0-alpha.1"]
检查是否为预发布版本
if version.isPrerelease { ... }
通过preReleaseIdentifier数组访问预发布标识符
for identifier in version.preReleaseIdentifier
{
// ...
}
通过buildMetadataIdentifier数组访问构建元数据标识符
for identifier in version.buildMetadataIdentifier
{
// ...
}
遵守Printable,因此您可以简单地通过访问description属性来获取字符串表示形式
print(version)
// OR
let stringRepresentation = version.description
可变性与不可变性
比较
默认的比较操作符实现了<
、<=
、>
、>=
、==
、!=
,这将根据语义化版本控制规范2.0.0比较主要版本、次要版本、补丁和预发布标识符
解析器
实现包括解析版本字符串表示的全功能组件。请现在查看《SemanticVersioningParser》的测试和源代码
测试
该库包括一系列测试,展示了如何使用不同的初始化器和解析器
扩展
有一些内置的扩展可以帮助您更轻松地完成任务。
NSBundle
如果bundle的Info.plist中设置了版本,则可以获取NSBundle的struct Version
let bundle = NSBundle(forClass: self.dynamicType)
if let version = bundle.version
{
// ...
}
IntegerLiteralConvertible
将整型转换为Version
结构体。您可以使用它来表示主版本。
自定义扩展
通过创建符合SemanticVersion
的结构体/对象来自定义扩展或Version表示。有关更多信息,请查看扩展或Version
实现。