Gibt es ein Verfahren zur Herstellung eines Standard 128bit GUID (UUID) auf dem Mac zu generieren?
-
08-07-2019 - |
Frage
Gibt es eine eingebaute Funktion, die äquivalent zu .NET ist
Guid.NewGuid();
in Cocoa?
Mein Wunsch ist es, eine Schnur entlang der Linien von 550e8400-e29b-41d4-a716-446655440000
zu erzeugen, die eine eindeutige Kennung darstellt.
Lösung
UUIDs werden in Core Foundation, von der CFUUID Bibliothek behandelt. Die Funktion die Sie suchen, ist
Andere Tipps
Einige Code:
Für eine Zeichenfolge UUID, die folgende Klassenmethode sollte es tun:
+(NSString*)UUIDString {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
Wenn Sie wirklich wollen, das Bytes (nicht die Zeichenfolge):
+(CFUUIDBytes)UUIDBytes {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFUUIDBytes bytes = CFUUIDGetUUIDBytes(theUUID);
CFRelease(theUUID);
return bytes;
}
oder gibt es das uuidgen
Kommandozeilen-Tool.
Seit 10.8 könnten Sie auch: NSString * uuidString = [[NSUUID UUID] UUIDString];
Schauen Sie sich die Wikipedia Artikel und die Core Foundation Seite
Seit 10.3 oder so, können Sie [[NSProcessInfo processInfo] globallyUniqueString]
. Während jedoch dieses zur Zeit erzeugt eine UUID, es wurde nie und immer noch nicht gewährleistet ist, das zu tun, so dass, wenn Sie wirklich brauchen eine UUID und nicht nur jede eindeutige Zeichenfolge Sie sollten CFUUID verwenden.