LetterCase

CI Status Version Carthage compatible License Twitter

轻量级 Swift 库,用于转换字符串的大小写。 欲了解更多信息,请查看博客文章或下面的目录

功能特点

安装

Cocoapods

CocoaPods 是一个依赖管理器,它将依赖项集成到您的 Xcode 工作区中。 要使用 Ruby gems 安装它,请运行

gem install cocoapods

要使用 Cocoapods 安装 LetterCase,只需将以下行添加到您的 Podfile

pod "LetterCase"

然后运行命令

pod install

有关更多信息,请点击此处查看

Carthage

Carthage 是一个依赖管理器,它生成一个二进制文件,用于手动集成到您的项目中。 可以通过 Homebrew 使用以下命令安装它

brew update
brew install carthage

为了通过 Carthage 将 LetterCase 集成到您的项目中,请将以下行添加到您项目的 Cartfile 中

github "rwbutler/LetterCase"

从 macOS 终端运行 carthage update --platform iOS 以构建框架,然后将 LetterCase.framework 拖到您的 Xcode 项目中。

有关更多信息,请点击此处查看

Swift Package Manager

一旦您设置了 Swift 包,添加 LetterCase 作为依赖项就像将其添加到 Package.swift 的 dependencies 值一样简单

dependencies: [
    .package(url: "https://github.com/rwbutler/LetterCase", from: "1.6.1")
]
使用 Xcode 包列表

Xcode 11 包括对 Swift Package Manager 的支持。 为了使用 Xcode 将 LetterCase 添加到您的项目中,请从 File 菜单中选择 Swift Packages,然后选择 Add Package Dependency

对话框将请求包仓库 URL,即

https://github.com/rwbutler/LetterCase

验证 URL 后,Xcode 将提示您选择是将特定分支、提交还是版本化版本拉入您的项目。

Xcode 11 Package Options

继续下一步,您将被要求选择要集成到目标中的包产品。 将有一个名为 LetterCase 的单个包产品,它应被预先选中。 确保从对话框的最右列中选择了您的主应用目标,然后单击“完成”以完成集成。

Xcode 11 Add Package

字母大小写

case regular                     // No transformation applied.
case capitalized                 // e.g. Capitalized Case
case kebab                       // e.g. kebab-case
case lower                       // e.g. lower case
case lowerCamel                  // e.g. lowerCamelCase
case macro                       // e.g. MACRO_CASE
case snake                       // e.g. snakecase
case upper                       // e.g. UPPER CASE
case upperCamel                  // e.g. UpperCamelCase

用法

为了使用 LetterCase,首先使用以下命令导入它:import LetterCase。 然后在 String 上调用便捷方法之一,如下所示

let exampleString = "The quick brown fox jumped over the lazy dog."
let result = exampleString.letterCase(.kebab)
print(result)

结果打印如下内容

the-quick-brown-fox-jumped-over-the-lazy-dog

或者

let exampleString = "The quick brown fox jumped over the lazy dog."
let result = exampleString.kebabCased()
print(result)

LetterCase 转换

使用 convert 函数从一种字母大小写转换为另一种,如下所示

let input = "the-quick-brown-fox-jumped-over-the-lazy-dog"
let result = input.convert(from: .kebab, to: .capitalized)
print(result) // Prints "The Quick Brown Fox Jumped Over The Lazy Dog"

JSON 解码

要解码键为 kebab case 的 JSON,例如

{
    "vehicles": [{
        "name": "car",
        "travels-on": "road",
        "number-of-wheels": 4
    }, {
        "name": "boat",
        "travels-on": "water",
        "number-of-wheels": 0
    }, {
        "name": "train",
        "travels-on": "rail",
        "number-of-wheels": 80
    }, {
        "name": "plane",
        "travels-on": "air",
        "number-of-wheels": 18
    }]
}

指定 keyDecodingStrategy 如下

let jsonData = try Data(contentsOf: jsonResourceURL)
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromKebabCase
let vehicles try decoder.decode(Vehicles.self, from: jsonData)

可用的策略包括

JSON 编码

要将 Swift 结构编码为键为 kebab case 的 JSON,请指定 keyEncodingStrategy 如下

let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToKebabCase
let jsonData = try encoder.encode(vehicles)

可用的策略包括

作者

Ross Butler

许可证

LetterCase 在 MIT 许可证下可用。 有关更多信息,请参阅 LICENSE 文件

附加软件

控件

AnimatedGradientView
AnimatedGradientView

框架

Cheats Connectivity FeatureFlags Skylark TypographyKit Updates
Cheats Connectivity FeatureFlags Skylark TypographyKit Updates

工具

Config Validator IPA Uploader Palette
Config Validator IPA Uploader Palette