Pregunta Cómo crear un GUID / UUID usando el iPhone SDK


Quiero ser capaz de crear un GUID / UUID en el iPhone y iPad.

La intención es poder crear claves para datos distribuidos que son únicos. ¿Hay alguna manera de hacer esto con el iOS SDK?


192
2018-01-09 05:45


origen


Respuestas:


[[UIDevice currentDevice] uniqueIdentifier]

Devuelve la identificación única de tu iPhone.

EDITAR: -[UIDevice uniqueIdentifier] ahora está en desuso y las aplicaciones están siendo rechazadas de la App Store por usarlo. El método a continuación es ahora el enfoque preferido.

Si necesita crear varios UUID, solo use este método (con ARC):

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

EDITAR: 29 de enero de 2014: Si se dirige a iOS 6 o posterior, ahora puede usar el método mucho más simple:

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

310
2018-01-09 09:35



Aquí está el código simple que estoy usando, que cumple con ARC.

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

    return uuidString;
}

99
2018-05-23 00:51



En iOS 6 puedes usarlo fácilmente:

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

Más detalles en Documentaciones de Apple


84
2018-03-23 05:19



Revisando la documentación del Desarrollador de Apple encontré el CFUUID objeto está disponible en el iPhone OS 2.0 y posterior.


45
2018-01-09 06:14



La técnica más simple es usar NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]. Ver el NSProcessInfo referencia de clase


22
2018-03-03 21:48



En Rápido:

var uuid: String = NSUUID().UUIDString
println("uuid: \(uuid)")

20
2017-11-30 23:07



En Swift 3.0

var uuid = UUID().uuidString

13
2017-11-01 14:14



He cargado mi implementación simple pero rápida de una clase Guid para ObjC aquí: GUID obj-c

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

También puede analizar desde y hacia varios formatos de cadena.


7
2018-04-02 18:11



Preguntas populares