Ich möchte eine GUID / UUID auf dem iPhone und iPad erstellen können.
Ziel ist es, Schlüssel für verteilte Daten erstellen zu können, die alle eindeutig sind. Gibt es eine Möglichkeit, dies mit dem iOS SDK zu tun?
Ich möchte eine GUID / UUID auf dem iPhone und iPad erstellen können.
Ziel ist es, Schlüssel für verteilte Daten erstellen zu können, die alle eindeutig sind. Gibt es eine Möglichkeit, dies mit dem iOS SDK zu tun?
Antworten:
[[UIDevice currentDevice] uniqueIdentifier]
Gibt die eindeutige ID Ihres iPhones zurück.
BEARBEITEN:
-[UIDevice uniqueIdentifier]
ist jetzt veraltet und Apps werden aus dem App Store für die Verwendung abgelehnt. Die folgende Methode ist nun der bevorzugte Ansatz.
Wenn Sie mehrere UUIDs erstellen müssen, verwenden Sie einfach diese Methode (mit ARC):
+ (NSString *)GetUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return (__bridge NSString *)string;
}
BEARBEITEN: 29. Januar 2014: Wenn Sie auf iOS 6 oder höher abzielen, können Sie jetzt die viel einfachere Methode verwenden:
NSString *UUID = [[NSUUID UUID] UUIDString];
Hier ist der einfache Code, den ich verwende und der mit ARC kompatibel ist.
+(NSString *)getUUID
{
CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
CFRelease(newUniqueId);
return uuidString;
}
In iOS 6 können Sie einfach verwenden:
NSUUID *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];
Weitere Details finden Sie in den Apple-Dokumentationen
In Swift :
var uuid: String = NSUUID().UUIDString
println("uuid: \(uuid)")
Die einfachste Technik ist zu verwenden NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. Siehe die NSProcessInfo- Klassenreferenz.
Ich habe meine einfache, aber schnelle Implementierung einer Guid-Klasse für ObjC hier hochgeladen : obj-c GUID
Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);
Es kann auch zu und von verschiedenen Zeichenfolgenformaten analysiert werden.