2014-06-26 14 views
204

In meinem iOS Swift app ich zufällig UUID (GUID) Strings für die Verwendung als Tabellenschlüssel, und dieser Ausschnitt erscheint arbeiten generieren möchten:Generieren eines UUID auf iOS von Swift

let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil)) 

Ist das sicher?

Oder gibt es vielleicht einen besseren (empfohlenen) Ansatz?

+1

Warum wäre es nicht sicher? – holex

+5

Sie können auch leu verwenden uuid = NSUUID.UUID(). UUIDString –

+0

Werfen Sie einen Blick auf http://StackOverflow.com/Questions/3773776/CoreFoundation-VS-Foundation –

Antwort

435

Versuchen Sie dieses:

let uuid = NSUUID().UUIDString 
print(uuid) 

Swift 3

let uuid = UUID().uuidString 
print(uuid) 
+6

In XCode 6.1, fand ich diesen Fehler: 'UUID()' ist nicht verfügbar: Verwenden Sie Objektkonstruktion 'NSUUID()'. Wir sollten es zu NSUUID() ändern. UUIDString – ohyes

+0

Fertig - aktualisierte Antwort, um NSUUID() korrekt zu zeigen. UUIDString – Lee

+0

Der obige Vorschlag ist nicht anders als Aufruf von 'NSUUID.init(). UUIDstring', richtig? –

25

Sie könnten auch einfach die NSUUID API:

let uuid = NSUUID() 

Wenn Sie wieder aus den String-Wert erhalten möchten, können Sie uuid.UUIDString verwenden können.

Beachten Sie, dass NSUUID ab iOS 6 verfügbar ist.

3

Auch can Sie es lowercase unter unter

let uuid = NSUUID().UUIDString.lowercaseString 
print(uuid) 

Ausgabe

verwenden

68b696d7-320b-4402-a412-d9cee10fc6a3

Vielen Dank!

+1

Danke. Es ist jetzt' NSUUID() .uuidString.lowercased() ' –

10

Für Swift 3 haben viele Foundation Typen das 'NS'-Präfix fallen gelassen, so dass Sie auf UUID().uuidString zugreifen können.

3

Für Swift 4;

let uuid = NSUUID().uuidString.lowercased()