Quiero poder crear un GUID / UUID en el iPhone y iPad.
La intención es poder crear claves para datos distribuidos que sean únicos. ¿Hay alguna manera de hacer esto con el SDK de iOS?
Quiero poder crear un GUID / UUID en el iPhone y iPad.
La intención es poder crear claves para datos distribuidos que sean únicos. ¿Hay alguna manera de hacer esto con el SDK de iOS?
Respuestas:
[[UIDevice currentDevice] uniqueIdentifier]
Devuelve la ID ú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 siguiente método es ahora el enfoque preferido.
Si necesita crear varios UUID, simplemente 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 está apuntando a iOS 6 o posterior, ahora puede usar el método mucho más simple:
NSString *UUID = [[NSUUID UUID] UUIDString];
Aquí está el código simple que estoy usando, compatible con ARC.
+(NSString *)getUUID
{
CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
CFRelease(newUniqueId);
return uuidString;
}
En iOS 6 puedes usar fácilmente:
NSUUID *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];
Más detalles en las Documentaciones de Apple
La técnica más simple es usar NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. Consulte la referencia de clase NSProcessInfo .
He subido mi implementación simple pero rápida de una clase Guid para ObjC aquí: obj-c GUID
Guid* guid = [Guid randomGuid];
NSLog("%@", guid.description);
También puede analizar hacia y desde varios formatos de cadena.