安全、URL 友好、灵活且唯一的 Swift 字符串 ID 生成器。 是 Nano ID 的 Swift 实现。 这个特定的项目是对 @antiflasher 原项目的重新设计,使其与 SwiftPM 兼容并可在服务器环境中使用。 所有功劳归于 @antiflasher 的原始工作。
将以下内容添加到您的 Package.swift
依赖项中,以及项目中目标对应的名称。
.package(url: "https://github.com/OffprintStudios/NanoID.git", from: "1.0.0")
/***/
.product(name: "NanoID", package: "NanoID")
// Nano ID with default alphabet (0-9a-zA-Z_~) and length (21 chars)
let id = NanoID.new() // -> dtY0D_lLeJJjM~pogpcY9
// Nano ID with default alphabet and given length
let id = NanoID.new(12) // -> _xw7Sou69dSQ
// Nano ID with given alphabet and length
let id = NanoID.new(alphabet: .uppercasedLatinLetters, size: 15) // -> BFIXOAMLMKVSTYS
// Nano ID with preset custom parameters
let nanoID = NanoID(alphabet: .lowercasedLatinLetters,.numbers, size:10)
let idFirst = nanoID.new() // -> b08eochgzf
let idSecond = nanoID.new() // -> 80q1uxyf2p
性能
已测试生成 100,000 个字母表为 0-9a-zA-Z_~
,长度为 21 个字符的 ID。
在 iPhone 5,iOS 10.3.3 上
总时间:23.474965 秒(每个 ID 0.00023 秒)
在 iPhone X,iOS 11.4 上
总时间:1.631867 秒(每个 ID 0.00002 秒)
多样性
在所有 100,000 个生成的 ID 中,最少使用的字符出现了 30,795 次。 最多使用的字符出现了 31,650 次(2.7% 的偏差)