Cómo obtener un UUID en el objetivo c, como en Java, el UUID se usa para generar números aleatorios únicos que representan un valor de 128 bits.
Cómo obtener un UUID en el objetivo c, como en Java, el UUID se usa para generar números aleatorios únicos que representan un valor de 128 bits.
Respuestas:
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 NSConcreteUUID
y 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.
CFUUIDRef udid
probablemente debería ser CFUUIDRef uuid
para evitar una posible confusión de UDID (Identificador único de dispositivo) con UUID (Identificador único universal)
Versión rápida de la respuesta de Raptor :
let uuid = NSUUID().UUIDString
+ (NSString *)uniqueFileName
{
CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
CFRelease(theUniqueString);
return [(NSString *)string autorelease];
}
-(NSString*) myUUID()
{
CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
NSString *guid = (__bridge NSString *)newUniqueIDString;
CFRelease(newUniqueIDString);
CFRelease(newUniqueID);
return([guid lowercaseString]);
}
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
- (NSString*)generateGUID{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [NSString stringWithFormat:@"%@", string];
}
Para Swift 5.0, use esto,
let uuidRef = CFUUIDCreate(nil)
let uuidStringRef = CFUUIDCreateString(nil, uuidRef)
let uuid = uuidStringRef as String? ?? ""