Skip to content

Instantly share code, notes, and snippets.

@warrenburton
Created May 9, 2018 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save warrenburton/e3a7988ed4478748d1eafbd87a695d39 to your computer and use it in GitHub Desktop.
Save warrenburton/e3a7988ed4478748d1eafbd87a695d39 to your computer and use it in GitHub Desktop.
Generate the 3-2-3 pattern GUID used by an Xcode storyboard id attribute. Useful for templating.
import Foundation
class StoryBoardGUIDGenerator {
private let legalChars: [Character] = {
let lower = "abcdefghiklmnopqrstuvwxyz"
let upper = "ABCDEFGHIKLMNOPQRSTUVWXYZ"
let number = "0123456789"
let legal = lower+upper+number
return Array(legal)
}()
private func randomChar() -> String {
let index = Int(arc4random_uniform(UInt32(legalChars.count)))
let char = legalChars[index]
return String(char)
}
private func randomFragment(length: Int) -> String {
guard length > 0 else {
return ""
}
var part = ""
for _ in 1...length {
let comp = randomChar()
part += comp
}
return part
}
func guid() -> String {
let comps = [randomFragment(length: 3),randomFragment(length: 2),randomFragment(length: 3)]
return comps.joined(separator: "-")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment