Comment générer UUID dans ios

Comment obtenir un UUID dans objective c, comme en Java, UUID est utilisé pour générer des nombres aléatoires uniques qui représentent une valeur de 128 bits.

67
demandé sur Saurabh Jadhav 2013-01-16 10:19:14

7 réponses

Essayez:

CFUUIDRef udid = CFUUIDCreate(NULL);
NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);

Mise à jour:

Depuis iOS 6, Il existe un moyen plus facile de générer UUID. Et comme d'habitude, il y a plusieurs façons de le faire:

Créer une chaîne UUID:

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

Créer un UUID:

[[NSUUID UUID]; // which is same as..
[[NSUUID] alloc] init]; 

Crée un objet de type NSConcreteUUID et peut être facilement intégré à NSString, et ressemble à ceci: BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

NOTE tirée de la Documentation:

Remarque: La classe NSUUID n'est pas sans frais Le CFUUIDRef de CoreFoundation. Utilisez des chaînes UUID pour convertir entre CFUUID et NSUUID, si nécessaire. Deux objets nsuuid ne sont pas garantis pour être comparables par la valeur du pointeur (comme CFUUIDRef Est); utilisez isEqual: pour comparer deux instances NSUUID.

148
répondu Raptor 2014-05-21 23:47:35
+ (NSString *)uniqueFileName
{
    CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
    CFRelease(theUniqueString);
    return [(NSString *)string autorelease];
}
6
répondu Bergasms 2017-08-11 08:01:53

Version rapide de la réponse de Raptor :

let uuid = NSUUID().UUIDString
4
répondu Melvin 2017-05-23 11:55:07
-(NSString*) myUUID()
{
    CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
    CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    NSString *guid = (__bridge NSString *)newUniqueIDString;
    CFRelease(newUniqueIDString);
    CFRelease(newUniqueID);
    return([guid lowercaseString]);
}
3
répondu Dominic Sander 2013-01-16 06:30:51

Je vous suggère de vérifier cette bibliothèque: https://github.com/fabiocaccamo/FCUUID

Il fournit une API très simple pour obtenir des identifiants universellement uniques avec différents niveaux de persistance.

Il est compatible avec: iOS5, iOS6, iOS7, iOS8

2
répondu Fabio Caccamo 2014-10-07 10:02:15

Vous pouvez utiliser CFUUID pour iOS 5 ou version inférieure et NSUUID pour iOS 6 et 7. pour le rendre plus sûr, vous pouvez stocker votre UUID dans keychain

1
répondu Veeru Sharma 2013-08-06 19:19:06
- (NSString*)generateGUID{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [NSString stringWithFormat:@"%@", string];
}
0
répondu Sargis Gevorgyan 2017-01-30 13:56:53