web-dev-qa-db-fra.com

Comment créer un GUID / UUID avec iOS

Je veux pouvoir créer un GUID/UUID sur iPhone et iPad.

L'intention est de pouvoir créer des clés uniques pour les données distribuées. Y a-t-il un moyen de faire cela avec le SDK iOS?

205
rustyshelf
[[UIDevice currentDevice] uniqueIdentifier]

Renvoie l'identifiant unique de votre iPhone.

MODIFIER: -[UIDevice uniqueIdentifier] est maintenant obsolète et des applications sont rejetées de l'App Store pour utilisation. La méthode ci-dessous est maintenant l'approche préférée.

Si vous devez créer plusieurs UUID, utilisez simplement cette méthode (avec ARC):

+ (NSString *)GetUUID
{
  CFUUIDRef theUUID = CFUUIDCreate(NULL);
  CFStringRef string = CFUUIDCreateString(NULL, theUUID);
  CFRelease(theUUID);
  return (__bridge NSString *)string;
}

EDIT: 29 janvier 2014: Si vous ciblez iOS 6 ou une version ultérieure, vous pouvez maintenant utiliser la méthode beaucoup plus simple:

NSString *UUID = [[NSUUID UUID] UUIDString];
320
Stephan Burlot

Voici le code simple que j'utilise, conforme à ARC.

+(NSString *)getUUID
{
    CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
    NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
    CFRelease(newUniqueId);

    return uuidString;
}
100
trillions

Dans iOS 6, vous pouvez facilement utiliser:

NSUUID  *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];

Plus de détails dans Documentations Apple

86
Arian Sharifian

Vérification de la documentation Apple à l'intention des développeurs. J'ai trouvé l'objet CFUUID est disponible sur iPhone OS 2.0 et versions ultérieures.

46
Henk

La technique la plus simple consiste à utiliser NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]. Voir la référence de la classe NSProcessInfo .

22
Ryan McCuaig

Dans Swift:

var uuid: String = NSUUID().UUIDString
println("uuid: \(uuid)")
22
King-Wizard

Dans Swift 3.

var uuid = UUID().uuidString
15
Radu Diță

J'ai téléchargé mon implémentation simple mais rapide d'une classe Guid pour ObjC ici: obj-c GUID

Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);

Il peut également analyser différents formats de chaîne.

7
tumtumtum