CoreKit

Swift 应用程序的模型、UI 和其他实用工具。支持 Swift 5.10、Xcode 15.4、iOS 13.0 及以上版本。

模型

货币

Money 是一个结构体,表示金额和关联的货币。金额可以表示实际值(例如:-$1927.10, ¥10, £1.56, 0.00kr.)或不可用(例如:没有数值)。

Swift 示例

let NZD = CurrencyManager.shared.get(code: "NZD")!
var m = Money(decimal: Decimal(40192.49), currency: NZD)
m += Money(float: 5.0, currency: NZD)           // m is now 40197.49
let f = MoneyFormatter(currency: NZD)
let s = f.format(m)                             // s is now "$40,197.49"

扩展

字符串

Swift 的 String 结构体的扩展,旨在提供更简单、更安全的子字符串访问方式(以牺牲性能为代价)。更简单 - 无需 String.Index 操作,索引使用 Int 指定。更安全 - 在字符串操作之前执行所有边界检查,因此不会发生生成无法捕获的致命错误的可能性。

Swift 示例

let msg = "My dog has fleas"
let c: Character = msg[1]!                      // c is now "y"
var s: String = msg[4...]                       // s is now "og has fleas"
s = msg[7...35]                                 // s is now "has fleas"
s = msg.removeSuffix("fleas")                   // s is now "my dog has "

数据

Swift 的 Data 结构体的扩展,旨在提供十六进制编码和解码。为速度而编写,速度比 map { String(format: "%02hhx", $0) }.joined() 快 6 倍到 34 倍。

Swift 示例

let d = Data(hexEncoded: "0fe3a9bc")            // d is now 0x0f,0xe3,0xa9,0xbc
let s = d.hexEncodedString(options: .upperCase) // s is now "0FE3A9BC"