NanoID 1.0.3

NanoID 1.0.3

George Cox 维护。



NanoID 1.0.3

SwiftPM compatible Cocoapods compatible GitHub release Swift 5.1 platforms Build Status

Nano ID

另一个 Nano ID 的 Swift 实现。它大量借鉴了 https://github.com/antiflasher/NanoID,该实现似乎已被废弃。

用法

// Create an ID generator using the default alphabet, size, and randomizer
let id = ID()

// Generate a 21 character id (21 is the default size)
id.generate() 

// Generate a 10 character id
id.generate(size: 10) 

// Generate a 5 character id containing only numeric characters
id.generate(alphabet: .numeric, size: 5) 

// Generate a 5 character id containing only symbols
id.generate(alphabet: .symbols, size: 5)

// Generate a secure 10 character id
id.generate(size: 5, randomizer: ID.Randomizers.secure)

随机数生成器

提供了两种实现:`Secure` 和 `ARC4Random`(别名为 `Insecure`)。`Secure` 实现使用 `CryptoKit` 进行随机化。如果这些无法满足您的需求,您可以提供自己的 `RandomizerProtocol` 实现。

字符集

包含几个字符集:`numeric`、`alphaLower`、`alphaUpper`、`alphaNumeric`、`symbols`、`urlSafe` 和 `full`。您可以轻松创建其他字符集,只需将一个或多个字符串初始化到 `Alphabet` 结构中。

自定义字符集示例

extension ID.Alphabet {
  public static var abc123 = Self(.abc123)
}
extension String {
  internal static var abc123 = "abc123" 
}