Ça m'a l'air bien. C'est ce que j'utilise (disponible sous forme de Gist )
- (NSString *)uuidString {
// Returns a UUID
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
NSString *uuidString = (__bridge_transfer NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuid);
CFRelease(uuid);
return uuidString;
}
Modifié pour ajouter
Si vous êtes sous OS X 10.8 ou iOS 6, vous pouvez utiliser la nouvelle fonction NSUUID pour générer une chaîne UUID, sans devoir passer par Core Foundation :
NSString *uuidString = [[NSUUID UUID] UUIDString];
// Generates: 7E60066C-C7F3-438A-95B1-DDE8634E1072
Mais surtout, si vous voulez simplement générer une chaîne unique pour un nom de fichier ou de répertoire, vous pouvez utiliser NSProcessInfo
's globallyUniqueString
méthode comme :
NSString *uuidString = [[NSProcessInfo processInfo] globallyUniqueString];
// generates 56341C6E-35A7-4C97-9C5E-7AC79673EAB2-539-000001F95B327819
Il ne s'agit pas d'un UUID formel, mais il est unique pour votre réseau et votre processus et constitue un bon choix dans de nombreux cas.