Wie man eine UUID in Ziel c erhält, wie in Java UUID wird verwendet, um eindeutige Zufallszahlen zu generieren, die einen 128-Bit-Wert darstellen.
Wie man eine UUID in Ziel c erhält, wie in Java UUID wird verwendet, um eindeutige Zufallszahlen zu generieren, die einen 128-Bit-Wert darstellen.
Antworten:
Versuchen:
CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);
AKTUALISIEREN:
Ab iOS 6 gibt es eine einfachere Möglichkeit, UUID zu generieren . Und wie immer gibt es mehrere Möglichkeiten:
Erstellen Sie eine UUID-Zeichenfolge:
NSString *uuid = [[NSUUID UUID] UUIDString];
Erstellen Sie eine UUID:
[NSUUID UUID]; // which is the same as..
[[NSUUID] alloc] init];
Erstellt ein Objekt vom Typ, NSConcreteUUIDdas leicht umgewandelt werden kann NSString, und sieht folgendermaßen aus:BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE
HINWEIS aus der Dokumentation:
Hinweis: Die NSUUID-Klasse ist nicht gebührenfrei mit CFUUIDRef von CoreFoundation verbunden. Verwenden Sie bei Bedarf UUID-Zeichenfolgen, um zwischen CFUUID und NSUUID zu konvertieren. Es ist nicht garantiert, dass zwei NSUUID-Objekte durch den Zeigerwert vergleichbar sind (wie dies bei CFUUIDRef der Fall ist). Verwenden Sie isEqual, um zwei NSUUID-Instanzen zu vergleichen.
CFUUIDRef udidsollte wahrscheinlich sein CFUUIDRef uuid, um eine mögliche Verwechslung von UDID (Unique Device Identifier) mit UUID (Universally Unique Identifier) zu vermeiden
Schnelle Version von Raptors Antwort :
let uuid = NSUUID().UUIDString
+ (NSString *)uniqueFileName
{
CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
CFRelease(theUniqueString);
return [(NSString *)string autorelease];
}
-(NSString*) myUUID()
{
CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
NSString *guid = (__bridge NSString *)newUniqueIDString;
CFRelease(newUniqueIDString);
CFRelease(newUniqueID);
return([guid lowercaseString]);
}
Sie können CFUUID für iOS 5 oder eine niedrigere Version und NSUUID für iOS 6 und 7 verwenden. Um die Sicherheit zu erhöhen, können Sie Ihre UUID im Schlüsselbund speichern
- (NSString*)generateGUID{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [NSString stringWithFormat:@"%@", string];
}
Verwenden Sie für Swift 5.0 Folgendes:
let uuidRef = CFUUIDCreate(nil)
let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
let uuid = uuidStringRef as String? ?? ""