Cómo generar UUID en ios


Respuestas:


175

Tratar:

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

ACTUALIZAR:

A partir de iOS 6, existe una forma más sencilla de generar UUID . Y como de costumbre, hay varias formas de hacerlo:

Cree una cadena UUID:

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

Crea un UUID:

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

Crea un objeto de tipo NSConcreteUUIDy se puede convertir fácilmente en NSString, y tiene este aspecto:BE5BA3D0-971C-4418-9ECF-E2D1ABCB66BE

NOTA de la documentación:

Nota: La clase NSUUID no es un puente gratuito con CFUUIDRef de CoreFoundation. Utilice cadenas UUID para convertir entre CFUUID y NSUUID, si es necesario. No se garantiza que dos objetos NSUUID sean comparables por el valor del puntero (como lo es CFUUIDRef); use isEqual: para comparar dos instancias NSUUID.


6
Si está utilizando iOS 6, puede utilizar NSUUID: NSString * uuid = [[NSUUID UUID] UUIDString];
Eli Burke

2
en la línea 1, CFUUIDRef udidprobablemente debería ser CFUUIDRef uuidpara evitar una posible confusión de UDID (Identificador único de dispositivo) con UUID (Identificador único universal)
CgodLEY


6
+ (NSString *)uniqueFileName
{
    CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
    CFRelease(theUniqueString);
    return [(NSString *)string autorelease];
}

Realmente no debería dejar el código sin explicación, sin importar cuán sencillo sea
Sirens

Errr, no estoy seguro de por qué seleccionaste mi respuesta particular para comentar un año y medio después XD.
Bergasmos

No me di cuenta de que tenía 1,5 años. Oh, bueno, funciona muy bien. :)
Sirens

3
-(NSString*) myUUID()
{
    CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
    CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
    NSString *guid = (__bridge NSString *)newUniqueIDString;
    CFRelease(newUniqueIDString);
    CFRelease(newUniqueID);
    return([guid lowercaseString]);
}

1

puede usar CFUUID para iOS 5 o una versión inferior y NSUUID para iOS 6 y 7. para hacerlo más seguro, puede almacenar su UUID en el llavero


0
- (NSString*)generateGUID{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [NSString stringWithFormat:@"%@", string];
}

1
Las respuestas de solo código no son útiles para la comunidad. Por favor mire Cómo responder
JimHawkins

-1

Para Swift 5.0, use esto,

    let uuidRef = CFUUIDCreate(nil)
    let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
    let uuid = uuidStringRef as String? ?? ""
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.